#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：契約情報連携ファイル作成
#
# 機能          ：１．契約情報連携ファイル作成
#
#運用日当日にサービス契約、お客様の情報更新、または特定の異動（中断受付／中断解除／回復／解約／キャンセル／登録内容修正／強制解約／利用停止／解約予約取消）が発生した情報を抽出し、ファイルに出力する。
#
# コマンド形式  ：EO2AO0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v3.00           2012/4/21   FJ)伊藤      新規作成
# v4.00           2012/12/26  FJ)近藤      【ST4-2012-0000228】性能障害対応
# v5.00           2013/05/15  FJ)清崎      【IT1-2013-0001203】外接強化試験不具合対応
# v5.01           2013/05/23  FJ)米谷      【ST4-2013-0000455】パフォーマンス対応
# V14.00.00       2015/05/18  FJ)土井      【OM-2015-0001266】アンロード対応 バッチアンロード処理統合①
# V14.01.00       2015/06/17  FJ)宇野      【OM-2015-0001266】中間ファイル名変更
# v14.02.00       2015/06/25  FJ)有本      【ST-2015-0000031】性能改善カレント抽出対応
# v19.00.00       2015/10/08  FJ)有本      【OM-2015-0002578】共通ＵＮＬＯＡＤ項目削除対応
# v20.00.00       2015/11/27  FJ)土井      【OM-2015-0003005】ソート削除対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#

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

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

##apl入力用ファイル
OUTFILE=${MID_DIR_KK}/KKIFM471001.csv

##アンロード用SQLファイル
# 2015/05/18 【OM-2015-0001266】アンロード対応 ２行コメント化 START
#SQLFILE_KK0081=${SQL_DIR}/KK_U_KK0081_69.sql
#SQLFILE_KK0081_TMP=${SQL_DIR}/KK_U_KK0081_69.tmp.sql
# 2015/05/18 【OM-2015-0001266】アンロード対応 ２行コメント化 END
SQLFILE_KK1091=${SQL_DIR}/KK_U_KK1091_14.sql
SQLFILE_KK1091_TMP=${SQL_DIR}/KK_U_KK1091_14.tmp.sql

#アンロード出力用
# 2015/05/18 【OM-2015-0001266】アンロード対応 START
#SQLOUT_KK0081=${MID_DIR_KK}/KKIFM471001_SQLOUT_KK0081.csv
# 2015/05/18 【OM-2015-0001266】アンロード対応 END

# 共通アンロードファイル名
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL START
# サービス契約スキーマ取得(全件)
### OM-2015-0001266 2015/06/17 宇野 MOD START
#COMULD_KK0081_ALL=${MID_DIR_CC}/CCIFM002001.csv
#COMULD_KK0081_ALL=${MID_DIR_CC}/CCIFM018001.csv
### OM-2015-0001266 2015/06/17 宇野 MOD END
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL END
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 ADD START
# サービス契約スキーマ取得(カレント)
COMULD_KK0081_CUR=${MID_DIR_CC}/CCIFM018002.csv
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 ADD END

SQLOUT_KK1091=${MID_DIR_KK}/KKIFM471001_SQLOUT_KK1091.csv

#ソート結果格納用
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL START
#KK0081_SORT=${MID_DIR_KK}/KKIFM471001_KK0081_SORT.csv
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL END
KK1091_SORT=${MID_DIR_KK}/KKIFM471001_KK1091_SORT.csv

#bsort絞込み結果格納用
KK0081_CRNT=${MID_DIR_KK}/KKIFM471001_KK0081_CRNT.csv
KK1091_CRNT=${MID_DIR_KK}/KKIFM471001_KK1091_CRNT.csv

#
#--- マッチング出力ファイルのクリアを行う
#
cat /dev/null > $OUTFILE
rm -f  ${TMPDEFFILE} > /dev/null 2>&1
# 2015/05/18 【OM-2015-0001266】アンロード対応 START
#rm -f  ${SQLFILE_KK0081_TMP} > /dev/null 2>&1
# 2015/05/18 【OM-2015-0001266】アンロード対応 END
rm -f  ${SQLFILE_KK1091_TMP} > /dev/null 2>&1
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL START
#rm -f  ${KK0081_SORT} > /dev/null 2>&1
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL END
rm -f  ${KK1091_SORT} > /dev/null 2>&1
rm -f  ${KK0081_CRNT} > /dev/null 2>&1
rm -f  ${KK1091_CRNT} > /dev/null 2>&1
# 2015/05/18 【OM-2015-0001266】アンロード対応 START
#rm -f  ${SQLOUT_KK0081} > /dev/null 2>&1
# 2015/05/18 【OM-2015-0001266】アンロード対応 END
rm -f  ${SQLOUT_KK1091} > /dev/null 2>&1

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($OUTFILE:rc=$rc) "
    echo $JOBNAME " File cat error($OUTFILE:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
#--- UNLOAD処理
#
# KK0081 
# 2015/05/18 【OM-2015-0001266】アンロード対応 コメント化 start
#sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0081 $SQLOUT_KK0081 $JOBNAME
#rc=$?
#if [ $rc -ne 0 ]
#then
#    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SQLFILE_KK0081 unload:rc=$rc) " 
#    echo $JOBNAME " UNLOAD Error($SQLFILE_KK0081 unload:rc=$rc) "
#    exit ${G_RTN_ERROR}
#fi
# 2015/05/18 【OM-2015-0001266】アンロード対応 コメント化 end

# KK1091 'ZZZZZZ' を置換します
sed s/ZZZZZ/${RSLT_OPEDATE}000000000/g ${SQLFILE_KK1091} > ${SQLFILE_KK1091_TMP}

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

#############################################################################
# KK0081_サービス契約
# 絞込み条件
#  サービス契約：カレント
# 2015/05/18 【OM-2015-0001266】アンロード対応 START
#bsortex \
#     -sort key=0.10asc,12.8asc,15.17asc \
#     -record recform=txtcsv \
#     -input file=${SQLOUT_KK0081} \
#            reclen=300 \
#            include="14.1asc.eq.'0',13.1asc.eq.'2',12.8asc.le.'${RSLT_OPEDATE}'" \
#     -output file=${KK0081_SORT}
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL START
#bsortex \
#     -sort key=0.10asc,12.8asc,15.17asc \
#     -record recform=txtcsv \
#     -input file=${COMULD_KK0081_ALL} \
#            reclen=${ULD_REC_LEN_KK0081} \
#            reconst="0.10,5.12,3.10,9.3,4.2,50.8,53.8,45.8,47.8,58.8,38.8,63.8,33.8,35.1,96.1,1.17,8.2" \
#     -output file=${KK0081_SORT} include="14.1asc.eq.'0',13.1asc.eq.'2',12.8asc.le.'${RSLT_OPEDATE}'"
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL END
# 2015/05/18 【OM-2015-0001266】アンロード対応 END


### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL START
#rc=$?
#if [ $rc -ne 0 ]
#then
#    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0081 Sort Error($SVC sort:rc=$rc) "
#    echo $JOBNAME " KK0081 Sort Error($SVC sort:rc=$rc) "
#    exit ${G_RTN_ERROR}
#fi
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 DEL END

### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 MOD START
#bsortex \
#     -merge key=0.10asc \
#     -record recform=txtcsv \
#     -input file=${KK0081_SORT} \
#            reclen=300 \
#     -summary suppress last \
#     -output file=${KK0081_CRNT}
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 MOD START
#bsortex \
#     -sort key=0.10asc,12.8asc,15.17asc \
#     -record recform=txtcsv \
#     -input file=${COMULD_KK0081_CUR} \
#            reclen=${ULD_REC_LEN_KK0081} \
#            reconst="0.10,5.12,3.10,9.3,4.2,50.8,53.8,45.8,47.8,58.8,38.8,63.8,33.8,35.1,96.1,1.17,8.2" \
#     -output file=${KK0081_CRNT}
### OM-2015-0003005 2015/11/27 土井 MOD START
#bsortex \
#     -sort key=0.10asc \
#     -record recform=txtcsv \
#     -input file=${COMULD_KK0081_CUR} \
#            reclen=${ULD_REC_LEN_KK0081} \
#            reconst="0.10,5.12,3.10,8.3,4.2,23.8,24.8,21.8,22.8,27.8,19.8,30.8,15.8,17.1,35.1,1.17,7.2" \
#     -output file=${KK0081_CRNT}
bsortex \
     -copy \
     -record recform=txtcsv \
     -input file=${COMULD_KK0081_CUR} \
            reclen=${ULD_REC_LEN_KK0081} \
            reconst="0.10,5.12,3.10,8.3,4.2,23.8,24.8,21.8,22.8,27.8,19.8,30.8,15.8,17.1,35.1,1.17,7.2" \
     -output file=${KK0081_CRNT}
### OM-2015-0003005 2015/11/27 土井 MOD END
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 MOD END
### ST-2015-0000031 性能改善カレント抽出対応 2015/06/25 有本 MOD END

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

#############################################################################
# KK1091_進捗
# 絞込み条件
# 重複行排除
#  重複行を削除する為にのみソートします。ソートキーには、全項目を指定。
#  ただし、PRG_DTMはYYYYMMDDのみにsubstringしているので8桁。(1.8asc)
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 MOD START
#bsortex \
#     -sort key=0.5asc,1.8asc,2.1asc,3.10asc \
#     -record recform=txtcsv \
#     -input file=${SQLOUT_KK1091} \
#            reclen=50 \
#     -output file=${KK1091_SORT}
bsortex \
     -sort key=0.5asc,1.8asc,2.1asc,3.10asc \
     -record recform=txtcsv \
     -input file=${SQLOUT_KK1091} \
            reclen=50 \
     -summary suppress last \
     -output file=${KK1091_CRNT}
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 MOD END

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


### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 DEL START
#bsortex \
#     -merge key=0.5asc,1.8asc,2.1asc,3.10asc \
#     -record recform=txtcsv \
#     -input file=${KK1091_SORT} \
#            reclen=50 \
#     -summary suppress last \
#     -output file=${KK1091_CRNT}
#
#rc=$?
#if [ $rc -ne 0 ]
#then
#    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK1091 merge Error($SVC sort:rc=$rc) "
#    echo $JOBNAME " KK1091 merge Error($SVC sort:rc=$rc) "
#    exit ${G_RTN_ERROR}
#fi
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 DEL END

#############################################################################
# マッチング
DEFFILE=${G_TOOLSH}/util/def/KK_CM_0146.def
TMPDEFFILE=${ULD_WORK_DIR}/KK_CM_0146.tmp.def
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${OUTFILE}

#--- 定義ファイル環境変数設定処理
cat ${DEFFILE} > ${TMPDEFFILE}
sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEFFILE}

#--- UNLOAD処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE}

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

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

P1="OPD=$OPD,"
P2="SVCCTL=JBSbatMultiServiceControl,"
P3="JOB=EO2AO0110J0,"
P4="IND1=KKIFM471.def,"
P5="INF1=${MID_DIR_KK}/KKIFM471001.csv,"
P6="IND2=,"
P7="INF2=,"
P8="OTD1=KKIFM174.def,"
P9="OTF1=${MID_DIR_KK}/KKIFM174001.csv,"
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"

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

exit_rc=$rc

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

exit $exit_rc
