#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：削除検索キー分割
#
# 機能          ：各種削除レコード作成のため、削除確定債権情報を分割する。
#
# コマンド形式  ：EO61U012VJ0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v7.00           2013/11/22  FJ)伊藤      【ANK-1654-00-00】新規作成（IT1-2013-0001578より分割）
# v8.00           2014/03/21  FJ)伊藤      【OM-2014-0001073】リレーション切れ債権発生時に、システムログにエラーを吐いていたのを修正。
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

#
#--- ファイル読み込みチェック
#
EXIST(){
    if [ ! -r $1 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " ファイルが読み込めません($1) "
        echo $JOBNAME " ファイルが読み込めません($1) "
        exit ${G_RTN_ERROR}
    fi
}

#- ワーク削除
WK_RM=true

#-------------------------------------------------------------
#--- ファイル定義
#-------------------------------------------------------------

#--- 入力ファイル
IN_FILE=${MID_DIR_CH}/CHIFM192002.csv

#--- 出力ファイル
OUT_FILE_1=${MID_DIR_CH}/CHIFM192003.csv
OUT_FILE_2=${MID_DIR_CH}/CHIFM192004.csv
OUT_FILE_3=${MID_DIR_CH}/CHIFM192005.csv
OUT_FILE_4=${MID_DIR_CH}/CHIFM192006.csv
OUT_FILE_5=${MID_DIR_CH}/CHIFM192007.csv
OUT_FILE_6=${MID_DIR_CH}/CHIFM192008.csv

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

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

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO61U012VJ0,"
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"

#-------------------------------------------------------------
#--- 入力ファイルチェック
#-------------------------------------------------------------

EXIST ${IN_FILE}

#-------------------------------------------------------------
#--- 削除情報チェック
#-------------------------------------------------------------

if [ ! -s ${IN_FILE} ]
then
    echo " 削除候補債権情報ファイル（${IN_FILE}）が空です、処理を終了します。 "
    cat /dev/null > ${OUT_FILE_1}
    cat /dev/null > ${OUT_FILE_2}
    cat /dev/null > ${OUT_FILE_3}
    cat /dev/null > ${OUT_FILE_4}
    cat /dev/null > ${OUT_FILE_5}
    cat /dev/null > ${OUT_FILE_6}
    sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME

    exit ${G_RTN_NORMAL}
fi

#-------------------------------------------------------------
#--- 分割
#-------------------------------------------------------------

#--- 請求契約番号、債権年月、債権番号
bsortex \
    -sort key="0.10asca,1.6asca,2.12asca" \
    -input reclen=75 file=${IN_FILE} \
    -summary suppress first \
    -record recform=txtcsv \
    -output file=${OUT_FILE_1} reconst=0.10,1.6,2.12,EMPTY,EMPTY,EMPTY &
pid_sort_01=$!

#--- 請求番号、請求年月
bsortex \
    -sort key="3.12asca,4.6asca" \
    -input reclen=75 file=${IN_FILE} \
    -summary suppress first \
    -record recform=txtcsv \
    -output file=${OUT_FILE_2} reconst=EMPTY,EMPTY,EMPTY,3.12,4.6,EMPTY &
pid_sort_02=$!

#--- 請求契約番号、債権年月、債権番号、請求番号、請求年月
bsortex \
    -sort key="0.10asca,1.6asca,2.12asca,3.12asca,4.6asca" \
    -input reclen=75 file=${IN_FILE} \
    -summary suppress first \
    -record recform=txtcsv \
    -output file=${OUT_FILE_3} reconst=0.10,1.6,2.12,3.12,4.6,EMPTY &
pid_sort_03=$!

#--- 督促番号（NULLを除く）
bsortex \
    -sort key="5.12asca" \
    -input reclen=75 file=${IN_FILE} omit="5.12ascb.eq.' '" \
    -summary suppress first \
    -record recform=txtcsv \
    -output file=${OUT_FILE_4} reconst=EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,5.12 &
pid_sort_04=$!

#--- 請求契約番号、債権年月、債権番号、督促番号（NULLを除く）
bsortex \
    -sort key="0.10asca,1.6asca,2.12asca,5.12asca" \
    -input reclen=75 file=${IN_FILE} omit="5.12ascb.eq.' '" \
    -summary suppress first \
    -record recform=txtcsv \
    -output file=${OUT_FILE_5} reconst=0.10,1.6,2.12,EMPTY,EMPTY,5.12 &
pid_sort_05=$!

#--- 請求番号がNULL（リレーション切れ）
bsortex \
    -sort key="0.10asca,1.6asca,2.12asca,3.12asca,4.6asca,5.12ascb" \
    -input reclen=75 file=${IN_FILE} include="3.12ascb.eq.' '" \
    -summary suppress first \
    -record recform=txtcsv \
    -output file=${OUT_FILE_6} &
pid_sort_06=$!

wait ${pid_sort_01}
rc_sort_01=$?

wait ${pid_sort_02}
rc_sort_02=$?

wait ${pid_sort_03}
rc_sort_03=$?

wait ${pid_sort_04}
rc_sort_04=$?

wait ${pid_sort_05}
rc_sort_05=$?

wait ${pid_sort_06}
rc_sort_06=$?

rcs=`expr ${rc_sort_01} + ${rc_sort_02} + ${rc_sort_03} + ${rc_sort_04} + ${rc_sort_05} + ${rc_sort_06}`

if [ ${rcs} -ne 0 ]
then
    ERRORMESS="検索キー分割でエラーが発生しました。エラー発生キー："
    if [ ${rc_sort_01} -ne 0 ]
    then
        ERRORMESS="${ERRORMESS}01 "
    fi
    if [ ${rc_sort_02} -ne 0 ]
    then
        ERRORMESS="${ERRORMESS}02 "
    fi
    if [ ${rc_sort_03} -ne 0 ]
    then
        ERRORMESS="${ERRORMESS}03 "
    fi
    if [ ${rc_sort_04} -ne 0 ]
    then
        ERRORMESS="${ERRORMESS}04 "
    fi
    if [ ${rc_sort_05} -ne 0 ]
    then
        ERRORMESS="${ERRORMESS}05 "
    fi
    if [ ${rc_sort_06} -ne 0 ]
    then
        ERRORMESS="${ERRORMESS}06 "
    fi
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME ${ERRORMESS}
    echo $JOBNAME ${ERRORMESS}
    exit ${G_RTN_ERROR}
fi

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

#
#---リレーション切れチェック
#
if [ -s ${OUT_FILE_6} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00031I $JOBNAME "リレーションの切れた債権があります：該当レコードは${OUT_FILE_6}を参照してください "
    echo $JOBNAME "リレーションの切れた債権があります：該当レコードは${OUT_FILE_6}を参照してください "
    exit ${G_RTN_INFO}
else
    exit ${G_RTN_NORMAL}
fi