#!/bin/bash
#############################################################################################################
# システム名        ：eo顧客基幹システム
#
# サブシステム名      ：契約管理
#
# シェル名          ：ＨＧＷ機器付替登録
#
# 機能            ：出荷指図（型確定前）編集時にeBIsの収容位置情報を参照し、収容局のOLTが10Gの場合、ONU/多機能RTをHGWに機器を変更する。
#
# コマンド形式        ：EO2IM0110J0.sh
#
# 実行環境         ：.../app/shl
#
# 終了ステータス      ：ゼロ以外異常
#
# 特記事項         ：特になし
#
# 変更履歴         ：変更日                変更者                  障害／仕様変更No.
# v61.00         2022/12/12           GDC）j.hortilano        ANK-4315-00-00_【eo定期】 eoホームゲートウェイ導入対応_Step1-2
# v70.00.00      2024/03/21           FJ）永井                ANK-4562-01-00__付替バッチにて5/10Gは収容位置を判断しない
##############################################################################################################

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

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


##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

#
#--- クエリ編集(アンロード)
#       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
}


# SQLファイル定義
SQLFILE_KK_U_ZM0321_13=${SQL_DIR}/KK_U_ZM0321_13.sql
# 業務パラメータ管理アンロードファイル(ＨＧＷ交換不可フラグ)
FILE_ZM0321_13_1=${MID_DIR_KK}/${JOBNAME}_ZM0321_13_1.csv
# 業務パラメータ管理アンロードファイル(ＨＧＷ付替開始日)
FILE_ZM0321_13_2=${MID_DIR_KK}/${JOBNAME}_ZM0321_13_2.csv


EDIT_ULD_QUERY ${SQLFILE_KK_U_ZM0321_13} "KK_HGW_KOKAN_FFG ${OPD} ${OPD}"
EXEC_UNLOAD ${SQL_WORK_FILE} ${FILE_ZM0321_13_1}

# 業務パラメータ設定値を変数.ＨＧＷ交換不可フラグ
HGW_KOKAN_FFG=`cat ${FILE_ZM0321_13_1} | sed -e 's/"//g'`

EDIT_ULD_QUERY ${SQLFILE_KK_U_ZM0321_13} "KK_HGW_REP_STAYMD ${OPD} ${OPD}"
EXEC_UNLOAD ${SQL_WORK_FILE} ${FILE_ZM0321_13_2}

# 業務パラメータ設定値を変数.ＨＧＷ付替開始日に格納する
HGW_REP_STAYMD=`cat ${FILE_ZM0321_13_2} | sed -e 's/"//g'`

if [ ${HGW_KOKAN_FFG} -eq "1" ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_NORMAL}
fi


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


P1="OPD=${OPD},"
P2="SVCCTL=JBSbatMultiServiceControl,"
P3="JOB=EO2IM0110J0,"
P4="IND1=,"
P5="INF1=,"
P6="IND2=,"
P7="INF2=,"
P8="OTD1=,"
P9="OTF1=,"
P10="OTD2=,"
P11="OTF2=,"
P12="TABLENAME=KU_T_KOJIAK,"
P13="SQLKEY=KK_SELECT_052,"
#ANK-4562-01-00 MOD START
#P14="SQLPARAM=000001;1;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;${HGW_REP_STAYMD};SQLPARAM_KEY_OPD_YYYYMMDD;${HGW_REP_STAYMD};000001;1;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD,"
P14="SQLPARAM=000001;1;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD;${HGW_REP_STAYMD};SQLPARAM_KEY_OPD_YYYYMMDD;${HGW_REP_STAYMD};SQLPARAM_KEY_OPD_YYYYMMDD;000001;1;SQLPARAM_KEY_OPD_YYYYMMDD;SQLPARAM_KEY_OPD_YYYYMMDD,"
#ANK-4562-01-00 MOD END
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

rm -f ${FILE_ZM0321_13_1}
rm -f ${FILE_ZM0321_13_2}

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

exit $rc
