#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：ＶＣＭＳ向け異動予約アンロード
#
# 機能          ：ＶＣＭＳ向け異動予約アンロード
#
# コマンド形式  ：EO2HV02A0J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#v49.00.00	2020/05/26	GDC)ニール		【ANK-3840-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}
else
   RSLT_OPEDATE=${OPD}
fi

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

#
#--- アンロード関数
#       p1：テーブル名／クエリファイル名
#       p2：出力ファイル名
#
EXEC_UNLOAD()
{
	# 出力ファイルの初期化
	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(unload:rc=$rc) " 
	    echo $JOBNAME " UNLOAD Error(unload:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
}

#
#---パラメタ定義
#
P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=,"
P4="IND1=,"
P5="INF1=,"
P6="IND2=,"
P7="INF2=,"
P8="OTD1=,"
P9="OTF1=,"
P10="OTD2=,"
P11="OTF2=,"
P12="TABLENAME=,"
P13="SQLKEY=,"
P14="SQLPARAM=,"
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"

KK1681_ULD_SQL=${SQL_DIR}/KK_U_KK1681_11.sql
KK1681_ULD_RSLT=${LOC_DIR_KK}/${JOBNAME}.KK_U_KK1681_11.csv

KK0791_ULD_SQL=${SQL_DIR}/KK_U_KK0791_06.sql
KK0791_ULD_RSLT=${LOC_DIR_KK}/${JOBNAME}.KK_U_KK0791_06.csv
KK0791_SORT=${LOC_DIR_KK}/${JOBNAME}.KK_U_KK0791_06_SRT.csv

KK_CM_0714_MATCHDEF=${G_TOOLSH}/util/def/KK_CM_0714.def
KK_CM_0714_MATCHDEF_TMPFILE=${G_TOOLSH}/util/def/${JOBNAME}_KK_CM_0714_TMP.def
KK_CM_0714_MATCHDEF_CSV=${LOC_DIR_KK}/${JOBNAME}.KK_CM_0714_TMP.csv
KK_CM_0714_MATCHDEF_CSV_SRT=${LOC_DIR_KK}/${JOBNAME}.KK_CM_0714_SRT.csv

KKIFM908001_TMP_DTA=${MID_DIR_KK}/${JOBNAME}.KKIFM908001_TMP.csv
KKIFM908002_TMP_DTA=${MID_DIR_KK}/${JOBNAME}.KKIFM908002_TMP.csv

KKIFM908001_0003_TMP=${MID_DIR_KK}/${JOBNAME}.KKIFM908001_0003_TMP.csv
KKIFM908001_0102_TMP=${MID_DIR_KK}/${JOBNAME}.KKIFM908001_0102_TMP.csv
KKIFM908002_0003_TMP=${MID_DIR_KK}/${JOBNAME}.KKIFM908002_0003_TMP.csv
KKIFM908002_0102_TMP=${MID_DIR_KK}/${JOBNAME}.KKIFM908002_0102_TMP.csv

KKIFM908001_MERGE_DTA=${MID_DIR_KK}/${JOBNAME}.KKIFM908001_MERGE.csv
KKIFM908001_SRT_DTA=${MID_DIR_KK}/${JOBNAME}.KKIFM908001_SRT.csv
KKIFM908002_MERGE_DTA=${MID_DIR_KK}/${JOBNAME}.KKIFM908002_MERGE.csv
KKIFM908002_SRT_DTA=${MID_DIR_KK}/${JOBNAME}.KKIFM908002_SRT.csv

KKIFM908001_DTA=${MID_DIR_KK}/KKIFM908001.csv
KKIFM908002_DTA=${MID_DIR_KK}/KKIFM908002.csv

KKIFM908_OUTPUT_DEFINITION="@SVC_KEI_NO=0.10 @IDO_RSV_DTL_CD=1.3 @IDO_RSV_STAT_CD=2.2 @RSV_APLY_YMD=3.8 @NEW_PCRS_CD=4.3 @NEW_PCRS_NM=5.242 @UPD_UNYO_YMD=6.8 @CUSTOM_1='1'.1ascA @CUSTOM_2='2'.1ascA"
KKIFM908_RECLEN=539

# 1.アンロード
EXEC_UNLOAD $KK1681_ULD_SQL $KK1681_ULD_RSLT

# 2.アンロード
EXEC_UNLOAD $KK0791_ULD_SQL $KK0791_ULD_RSLT

# 3.ソート/サプレス
bsortex \
   -sort key=0.3asc,2.8asc,1.17asc \
   -record recform=txtcsv \
   -input file=${KK0791_ULD_RSLT} \
        reclen=286 \
        include="2.8asc.le.'${OPD}',3.1asc.eq.'0'" \
   -output file=${KK0791_SORT}

rc=$?

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

# 4.マッチング
cp -f $KK_CM_0714_MATCHDEF $KK_CM_0714_MATCHDEF_TMPFILE

sed -i -e s@':KK1681_CSV'@${KK1681_ULD_RSLT}@g ${KK_CM_0714_MATCHDEF_TMPFILE}
sed -i -e s@':KK0791_CSV'@${KK0791_SORT}@g ${KK_CM_0714_MATCHDEF_TMPFILE}

# ファイルマッチング
cat /dev/null > $KK_CM_0714_MATCHDEF_CSV
export ZTLOUTFILE=$KK_CM_0714_MATCHDEF_CSV
${G_TOOLSH}/util/bin/ZTLMAT01 $KK_CM_0714_MATCHDEF_TMPFILE

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

# 5.ソート
bsortex -sort key="0.10asca,1.3asca,6.8asca" -record recform=txtcsv \
	-input reclen=$KKIFM908_RECLEN file=$KK_CM_0714_MATCHDEF_CSV \
	-output file=$KK_CM_0714_MATCHDEF_CSV_SRT

rc=$?

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

# 6.分割
bsortex -copy -record recform=txtcsv -input reclen=$KKIFM908_RECLEN file=$KK_CM_0714_MATCHDEF_CSV_SRT \
	-output file=$KKIFM908001_TMP_DTA include="1.3ascn.eq.'007'" \
	-output file=$KKIFM908002_TMP_DTA include="1.3ascn.eq.'003'"

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

# 7.分割
bsortex -copy -define $KKIFM908_OUTPUT_DEFINITION -record recform=txtcsv -input reclen=$KKIFM908_RECLEN file=$KKIFM908001_TMP_DTA \
	-output file=$KKIFM908001_0003_TMP include="2.2ascn.eq.'00'.or.2.2ascn.eq.'03'" reconst="@SVC_KEI_NO,@IDO_RSV_DTL_CD,@IDO_RSV_STAT_CD,@RSV_APLY_YMD,@NEW_PCRS_CD,@NEW_PCRS_NM,@UPD_UNYO_YMD,@CUSTOM_2" \
	-output file=$KKIFM908001_0102_TMP include="2.2ascn.eq.'01'.or.2.2ascn.eq.'02'" reconst="@SVC_KEI_NO,@IDO_RSV_DTL_CD,@IDO_RSV_STAT_CD,@RSV_APLY_YMD,@NEW_PCRS_CD,@NEW_PCRS_NM,@UPD_UNYO_YMD,@CUSTOM_1"

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

bsortex -copy -define $KKIFM908_OUTPUT_DEFINITION -record recform=txtcsv -input reclen=$KKIFM908_RECLEN file=$KKIFM908002_TMP_DTA \
	-output file=$KKIFM908002_0003_TMP include="2.2ascn.eq.'00'.or.2.2ascn.eq.'03'" reconst="@SVC_KEI_NO,@IDO_RSV_DTL_CD,@IDO_RSV_STAT_CD,@RSV_APLY_YMD,@NEW_PCRS_CD,@NEW_PCRS_NM,@UPD_UNYO_YMD,@CUSTOM_2" \
	-output file=$KKIFM908002_0102_TMP include="2.2ascn.eq.'01'.or.2.2ascn.eq.'02'" reconst="@SVC_KEI_NO,@IDO_RSV_DTL_CD,@IDO_RSV_STAT_CD,@RSV_APLY_YMD,@NEW_PCRS_CD,@NEW_PCRS_NM,@UPD_UNYO_YMD,@CUSTOM_1"

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

# 8.マージ
cat /dev/null > $KKIFM908001_MERGE_DTA
cat /dev/null > $KKIFM908002_MERGE_DTA

cat $KKIFM908002_0003_TMP $KKIFM908002_0102_TMP > $KKIFM908002_MERGE_DTA
cat $KKIFM908001_0003_TMP $KKIFM908001_0102_TMP > $KKIFM908001_MERGE_DTA

# 8-1.ソート
cat /dev/null > $KKIFM908001_SRT_DTA

bsortex -sort key="0.10asca,7.1asca,6.8asca" -record recform=txtcsv \
	-input reclen=$KKIFM908_RECLEN file=$KKIFM908001_MERGE_DTA \
	-output file=$KKIFM908001_SRT_DTA

rc=$?

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

cat /dev/null > $KKIFM908002_SRT_DTA

bsortex -sort key="0.10asca,7.1asca,6.8asca" -record recform=txtcsv \
	-input reclen=$KKIFM908_RECLEN file=$KKIFM908002_MERGE_DTA \
	-output file=$KKIFM908002_SRT_DTA

rc=$?

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

# 9.サプレス
cat /dev/null > $KKIFM908001_DTA
bsortex -define $KKIFM908_OUTPUT_DEFINITION -merge key=0.10asc -record recform=txtcsv -input file=$KKIFM908001_SRT_DTA reclen=$KKIFM908_RECLEN \
	-summary suppress last -output file=$KKIFM908001_DTA reconst="@SVC_KEI_NO,@IDO_RSV_DTL_CD,@IDO_RSV_STAT_CD,@RSV_APLY_YMD,@NEW_PCRS_CD,@NEW_PCRS_NM,@UPD_UNYO_YMD"

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

cat /dev/null > $KKIFM908002_DTA
bsortex -define $KKIFM908_OUTPUT_DEFINITION -merge key=0.10asc -record recform=txtcsv -input file=$KKIFM908002_SRT_DTA reclen=$KKIFM908_RECLEN \
	-summary suppress last -output file=$KKIFM908002_DTA reconst="@SVC_KEI_NO,@IDO_RSV_DTL_CD,@IDO_RSV_STAT_CD,@RSV_APLY_YMD,@NEW_PCRS_CD,@NEW_PCRS_NM,@UPD_UNYO_YMD"

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

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

rm -f $KK1681_ULD_RSLT
rm -f $KK0791_ULD_RSLT
rm -f $KK0791_SORT
rm -f $KKIFM908001_TMP_DTA
rm -f $KKIFM908002_TMP_DTA
rm -f $KKIFM908001_0003_TMP
rm -f $KKIFM908001_0102_TMP
rm -f $KKIFM908002_0003_TMP
rm -f $KKIFM908002_0102_TMP
rm -f $KKIFM908001_MERGE_DTA
rm -f $KKIFM908002_MERGE_DTA
rm -f $KKIFM908001_SRT_DTA
rm -f $KKIFM908002_SRT_DTA
rm -f $KK_CM_0714_MATCHDEF_TMPFILE

exit $exit_rc