#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：ｅｏ電気提供条件チェックリスト作成
#
# 機能          ：１）ｅｏ光ネットとｅｏ電気について以下のチェックを行い、提供条件が適用されていないデータを抽出する。
#                 ２）電子ファイル管理及びダウンロードファイル管理に登録する。
#
# コマンド形式  ：EO2EV0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v16.00.00      2015/05/28   FJ) 酒井     ANK-2480-00-00 新規作成
# v16.00.01      2015/10/07   FJ) 頼経     ANK-2480-00-00 step1-2対応
# v25.00.00      2016/06/07   FJ) 山裾     OM-2016-0001212対応
# v29.00.00      2016/09/14   FJ) 奥村     ANK-2990-00-00 ANK-2990-00-00 step2-2対応
# v53.00.00      2021/05/21   FJ) 謝       【ANK-4021-00-00】クレカカード会社 仕向け先変更対応
#
##############################################################

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

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

#
#---業務で必要な変数定義
#
. EOK010410J0.sh 2
RUN_DATE=$RSLT_SYSDATE
DEL_FILE=${MID_DIR_KK}/KKL08901_elec_*.csv
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

P1="OPD=$OPD,"
P2="SVCCTL=JBSbatMultiServiceControl,"
P3="JOB=EO2EV0110J0,"
#OM-2016-0001212 Mod Start
#P4="IND1=,"
#P5="INF1=,"
P4="IND1=KKIFM713.def,"
P5="INF1=${MID_DIR_KK}/KKIFM713001.csv,"
#OM-2016-0001212 Mod End
P6="IND2=,"
P7="INF2=,"
P8="OTD1=KKIFM633.def,"
P9="OTF1=${MID_DIR_KK}/KKL08901_elec_${RUN_DATE}.csv,"
P10="OTD2=,"
P11="OTF2=,"
#OM-2016-0001212 Mod Start
#P12="TABLENAME=KK_T_SVC_KEI,"
#P13="SQLKEY=KK_SELECT_315,"
#ANK2480-00-00 step1-2 MOD START
#P14="SQLPARAM=SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD,"
#P14="SQLPARAM=SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD,"
#ANK2480-00-00 step1-2 MOD END
P12="TABLENAME=,"
P13="SQLKEY=,"
P14="SQLPARAM=,"
#OM-2016-0001212 Mod End
P15="ERRFILE=,"
P16="RECOVERY=,"
P17="BREAKPTN=,"
P18="FREE=${MID_DIR_KK};KKL08901_elec_${RUN_DATE}.csv"
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

#---前回のKKL08901ファイルを削除
rm -f ${DEL_FILE}

#OM-2016-0001212 Add Start
#アンロード用SQLファイル（サービス契約グループ設定）
SQLFILE_KK2961=${SQL_DIR}/KK_U_KK2961_01.sql
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD Start
#アンロード用SQLファイル（口座）
SQLFILE_KK0501=${SQL_DIR}/KK_U_KK0501_03.sql
#アンロード用SQLファイル（クレジット）
SQLFILE_KK0521=${SQL_DIR}/KK_U_KK0521_07.sql
SQLFILE_KK0521_TEMP=${SQL_DIR}/KK_U_KK0521_07_TEMP.sql
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD End

#アンロード出力用
SQLOUT_KK2961=${MID_DIR_KK}/KKIFM713001_unload.csv
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD Start
SQLOUT_KK0501=${MID_DIR_KK}/KKIFM713001_unload_02.csv
SQLOUT_KK0521=${MID_DIR_KK}/KKIFM713001_unload_03.csv
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD End

#ソート用ファイル（共通アンロードファイル）
KK0491_INPUT=${MID_DIR_CC}/CCIFM030002.csv
CK0011_INPUT=${MID_DIR_CC}/CCIFM019002.csv
KK0321_INPUT=${MID_DIR_CC}/CCIFM024001.csv
KK0081_INPUT=${MID_DIR_CC}/CCIFM020002.csv
KK0241_INPUT=${MID_DIR_CC}/CCIFM022001.csv

#ソート結果格納用
KK0491_SORT=${MID_DIR_CC}/CCIFM030002_sort.csv
CK0011_SORT=${MID_DIR_CC}/CCIFM019002_sort.csv
KK0321_SORT=${MID_DIR_CC}/CCIFM024001_sort.csv
KK0081_SORT01=${MID_DIR_CC}/CCIFM020002_sort01.csv
KK0081_SORT02=${MID_DIR_CC}/CCIFM020002_sort02.csv
KK0241_SORT=${MID_DIR_CC}/CCIFM022001_sort.csv
KK0241_MERGE=${MID_DIR_CC}/CCIFM022001_merge.csv

#マッチング用DEF
DEFFILE01=${G_TOOLSH}/util/def/KK_CM_0600.def
DEFFILE02=${G_TOOLSH}/util/def/KK_CM_0601.def
DEFFILE03=${G_TOOLSH}/util/def/KK_CM_0602.def
TMPDEFFILE01=${ULD_WORK_DIR}/KK_CM_0600.tmp.def
TMPDEFFILE02=${ULD_WORK_DIR}/KK_CM_0601.tmp.def
TMPDEFFILE03=${ULD_WORK_DIR}/KK_CM_0602.tmp.def

#マッチング結果格納用
KKIFM713_MATCHING01=${MID_DIR_KK}/KKIFM713001_matching_01.csv
KKIFM713_MATCHING02=${MID_DIR_KK}/KKIFM713001_matching_02.csv
KKIFM713_SORT01=${MID_DIR_KK}/KKIFM713001_sort_01.csv
KKIFM713_SORT02=${MID_DIR_KK}/KKIFM713001_sort_02.csv
KKIFM713_MATCHING03=${MID_DIR_KK}/KKIFM713001.csv

#--- 各ファイルのクリア
rm -f  ${SQLOUT_KK2961} > /dev/null 2>&1
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD Start
rm -f  ${SQLOUT_KK0501} > /dev/null 2>&1
rm -f  ${SQLOUT_KK0521} > /dev/null 2>&1
rm -f  ${SQLFILE_KK0521_TEMP} > /dev/null 2>&1
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD End
rm -f  ${KK0491_SORT} > /dev/null 2>&1
rm -f  ${CK0011_SORT} > /dev/null 2>&1
rm -f  ${KK0321_SORT} > /dev/null 2>&1
rm -f  ${KK0081_SORT01} > /dev/null 2>&1
rm -f  ${KK0081_SORT02} > /dev/null 2>&1
rm -f  ${KK0241_SORT} > /dev/null 2>&1
rm -f  ${KK0241_MERGE} > /dev/null 2>&1
rm -f  ${TMPDEFFILE01} > /dev/null 2>&1
rm -f  ${TMPDEFFILE02} > /dev/null 2>&1
rm -f  ${TMPDEFFILE03} > /dev/null 2>&1
rm -f  ${KKIFM713_MATCHING01} > /dev/null 2>&1
rm -f  ${KKIFM713_MATCHING02} > /dev/null 2>&1
rm -f  ${KKIFM713_MATCHING03} > /dev/null 2>&1

#--- UNLOAD処理
# サービス契約グループ設定（KK2961）
sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK2961 $SQLOUT_KK2961 $JOBNAME
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SQLOUT_KK2961 unload:rc=$rc) " 
    echo $JOBNAME " UNLOAD Error($SQLOUT_KK2961 unload:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#2016/09/14 ANK-2990-00-00 step2-2対応 ADD Start
# 口座（KK0501）
sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0501 $SQLOUT_KK0501 $JOBNAME
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SQLOUT_KK0501 unload:rc=$rc) " 
    echo $JOBNAME " UNLOAD Error($SQLOUT_KK0501 unload:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#バインド変数設定処理
sed s/ZZZZZ/${RSLT_OPEDATE}/g ${SQLFILE_KK0521} > ${SQLFILE_KK0521_TEMP}
# クレジット（KK0521）
sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0521_TEMP $SQLOUT_KK0521 $JOBNAME
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SQLOUT_KK0521 unload:rc=$rc) " 
    echo $JOBNAME " UNLOAD Error($SQLOUT_KK0521 unload:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD End

#請求契約（KK0491） SORT
#2016/09/14 ANK-2990-00-00 step2-2対応 MOD reconst="0.10,5.1"
# ANK-4021-00-00 MOD START
#bsortex \
#     -sort key=0.10asc \
#     -record recform=txtcsv \
#     -input file=${KK0491_INPUT} \
#            reclen=180 \
#     -output file=${KK0491_SORT} \
#             reconst="0.10,5.1,7.12,8.12,11.8"
bsortex \
     -sort key=0.10asc \
     -record recform=txtcsv \
     -input file=${KK0491_INPUT} \
            reclen=${ULD2_REC_LEN_KK0491} \
     -output file=${KK0491_SORT} \
             reconst="0.10,5.1,7.12,8.12,11.8"
# ANK-4021-00-00 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0491 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KK0491 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#お客様（CK0011） SORT
bsortex \
     -sort key=0.10asc \
     -record recform=txtcsv \
     -input file=${CK0011_INPUT} \
            reclen=1550 \
            include="(3.1asc.eq.'1'.or.3.1asc.eq.'2'.or.3.1asc.eq.'3'.or.3.1asc.eq.'5')" \
     -output file=${CK0011_SORT} \
             reconst="0.10"
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " CK0011 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " CK0011 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#課金先（KK0321） SORT
bsortex \
     -sort key=1.10asc \
     -record recform=txtcsv \
     -input file=${KK0321_INPUT} \
            reclen=170 \
            include="8.8asc.le.'${RSLT_OPEDATE}',9.8asc.ge.'${RSLT_OPEDATE}'" \
     -output file=${KK0321_SORT} \
             reconst="1.10,0.10"
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

#サービス契約（KK0081） SORT（ｅｏ電気）
bsortex \
     -sort key=0.10asc \
     -record recform=txtcsv \
     -input file=${KK0081_INPUT} \
            reclen=500 \
            include="2.3asc.eq.'100',7.2asc.eq.'17'" \
     -output file=${KK0081_SORT01} \
             reconst="0.10,3.10"
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0081_01 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KK0081_01 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#サービス契約（KK0081） SORT（ネット）
bsortex \
     -sort key=0.10asc \
     -record recform=txtcsv \
     -input file=${KK0081_INPUT} \
            reclen=500 \
            include="(2.3asc.eq.'010'.or.2.3asc.eq.'020'.or.2.3asc.eq.'030'.or.2.3asc.eq.'100'.or.2.3asc.eq.'210'.or.2.3asc.eq.'220'),(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04')" \
     -output file=${KK0081_SORT02} \
             reconst="0.10,3.10"
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0081_02 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KK0081_02 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#回線対象サービス契約（KK0241） SORT
bsortex \
     -sort key=0.10asc,3.8asc \
     -record recform=txtcsv \
     -input file=${KK0241_INPUT} \
            reclen=70 \
            include="2.8asc.le.'${RSLT_OPEDATE}'" \
     -output file=${KK0241_SORT} 
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

#回線対象サービス契約（KK0241） サービス契約番号毎に最大
bsortex \
     -merge key=0.10asc \
     -record recform=txtcsv \
     -input file=${KK0241_SORT} \
            reclen=70 \
     -summary suppress last \
     -output file=${KK0241_MERGE} \
             reconst="0.10,1.12"

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

#
#--- マッチング１（ｅｏ電気）
#
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${KKIFM713_MATCHING01}

#--- 定義ファイル環境変数設定処理
cat ${DEFFILE01} > ${TMPDEFFILE01}
sed -i -e s@'${SVC_KEI}'@${KK0081_SORT01}@g ${TMPDEFFILE01}
sed -i -e s@'${CUST}'@${CK0011_SORT}@g ${TMPDEFFILE01}
sed -i -e s@'${KAKINS}'@${KK0321_SORT}@g ${TMPDEFFILE01}
sed -i -e s@'${SEIKY_KEI}'@${KK0491_SORT}@g ${TMPDEFFILE01}
sed -i -e s@'${SVC_KEI_GRP_SETTE}'@${SQLOUT_KK2961}@g ${TMPDEFFILE01}

#--- マッチング処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE01}

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

#
#--- マッチング２（ネット）
#
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${KKIFM713_MATCHING02}

#--- 定義ファイル環境変数設定処理
cat ${DEFFILE02} > ${TMPDEFFILE02}
sed -i -e s@'${KAISEN_TG_SVC_KEI}'@${KK0241_MERGE}@g ${TMPDEFFILE02}
sed -i -e s@'${SVC_KEI}'@${KK0081_SORT02}@g ${TMPDEFFILE02}
sed -i -e s@'${KAKINS}'@${KK0321_SORT}@g ${TMPDEFFILE02}

#--- マッチング処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE02}

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

#ｅｏ電気（KKIFM713） SORT_01
bsortex \
     -sort key=5.12asc \
     -record recform=txtcsv \
     -input file=${KKIFM713_MATCHING01} \
            reclen=120 \
     -output file=${KKIFM713_SORT01} 
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KKIFM713_01 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KKIFM713_01 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#ネット（KKIFM713） SORT_02
bsortex \
     -sort key=3.12asc \
     -record recform=txtcsv \
     -input file=${KKIFM713_MATCHING02} \
            reclen=70 \
     -output file=${KKIFM713_SORT02} 
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KKIFM713_02 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KKIFM713_02 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
#--- マッチング３（ｅｏ電気提供条件未適用ファイル）
#
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${KKIFM713_MATCHING03}

#--- 定義ファイル環境変数設定処理
cat ${DEFFILE03} > ${TMPDEFFILE03}
sed -i -e s@'${KKIFM713_DNK}'@${KKIFM713_SORT01}@g ${TMPDEFFILE03}
sed -i -e s@'${KKIFM713_NET}'@${KKIFM713_SORT02}@g ${TMPDEFFILE03}
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD Start
sed -i -e s@'${KKIFM713_KOZ}'@${SQLOUT_KK0501}@g ${TMPDEFFILE03}
sed -i -e s@'${KKIFM713_CRE}'@${SQLOUT_KK0521}@g ${TMPDEFFILE03}
#2016/09/14 ANK-2990-00-00 step2-2対応 ADD End

#--- マッチング処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE03}

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

#OM-2016-0001212 Add End
#
#---ＡＰＬ起動
#

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

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

exit $exit_rc
