#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：利用料金情報マージ・ソート１
#
# 機能          ：各連携もとの利用料金情報をマージし、以下のキー情報にてソートする。
#ソートキー：請求年月（昇順）＞料金コースコード（昇順）＞料金サービスコード（昇順）＞
#料金項目コード（昇順）＞請求先番号（昇順）＞サービス番号（昇順）＞サービス回復日(昇順)＞利用開始日（昇順）＞利用終了日（昇順）
#
#なお、利用料金情報（ACIFM057001.csv）および一時金利用料金情報（ACIFM042001.csv）のファイルの項目数が異なるため、ファイルを再編成したのちマージソートを行う。  
#
# コマンド形式  ：EO3010740J0.sh
#
# ・s環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 適L事項      ：釘ﾉなし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v3.00.00        2012/08/15  FJ）岡田     【ST2-2012-0001464】マンション課題対応
# v4.00.00        2012/09/27  FJ）鈴木     【ANK-0546-00-00】宅内PF事業本格対応（AC）
# v4.01.00        2012/10/09  FJ）岡田     【TG1-2012-0000216】長割／即割対応
# v4.02.00        2013/03/15  FJ）指原     【ST4-2013-0000198】性能改善 bsortパラメータの指定サイズ最適化
# v4.03.00        2013/03/21  FJ）浜口     【IT2-2013-0000288/287】割引適用開始終了の補正対応
# v4.04.00        2013/03/23  FJ）今井     【契約障害対応】マンションオーナー向け利用不可期間減処理の追渦ﾎ応
# v4.05.00        2013/04/10  FJ）後藤     【ST4-2013-0000413】性能改善_定額料金計算を多重化
# v4.06.00        2013/05.20  FJ) 前田     【TG1_2013-0000354】マージ・ソートの入力ファイルに違約金情報を追加
# v5.00           2013/10/12  FJ) 黒木     【ANK-1580-00-00】eoスマートリンク改修対応
# v8.00.00        2013/12/25  FJ) 田内     【ANK-1794-00-00】サービス詳細識別番号追加
# v10.00.00       2014/09/24  FJ) 沖田     【ST4-2014-0000066】性能改善(10多重化)対応
# v36.00.00       2018/01/16   FJ)田中     【ANK-3296-00-00】標準工事費分割請求
# v36.01.00       2018/01/16   FJ)田中     【IT1-2018-0000013】ファイルID入力誤り
# v38.00.00       2018/07/05   FJ)原田     【ANK-3404-00-00】【性能改善】MVNO料金計算夜間処理のmineo単独契約切離し
# v38.00.01       2018/08/13  FJ) 原田     【ST-2018-0000030】mineo単独料金データファイル名変更
# v67.00.00       2023/09/13  FJ) 吉村     【ANK-4402-00-00】D.U-NET　ＭＴ光配線・個別卸用 CPコードの作成依頼
##############################################################

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

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

#
#---環境変数定義Shell呼ｄ双し
#
. EOK010110J0.sh

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

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

sh ${G_TOOLSH}/EOK010210J0.sh CS00027I $JOBNAME

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

# 利用料金情報
ORIGINAL_FILE="${MID_DIR_AC}/ACIFM057001.csv"

# 利用料金情報（マンション項目削除）
EDIT_FILE_01="${MID_DIR_AC}/ACIFM057001_TEMP01_EO3010740J0.csv"

# 利用料金情報（改行コード変更）
EDIT_FILE_02="${MID_DIR_AC}/ACIFM057001_TEMP02_EO3010740J0.csv"


#
#---入力ファイルチェック関数
#
SF_fileCheck() {

	IN_FILE=$1
	
	if [ ! -r ${IN_FILE} ]; then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${IN_FILE}) "
	    echo $JOBNAME " File is nonexist (${IN_FILE}) "
	    exit ${G_RTN_INFO}
	fi
}

#
#---入力ファイル存在チェック（利用料金情報）
#
SF_fileCheck ${ORIGINAL_FILE}

#
#---マンション系３項目を削除
#
cat ${ORIGINAL_FILE} | cut -d, -f1-30,34 > ${EDIT_FILE_01}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " CAT Error($SVC cat:rc=$rc) "
    echo $JOBNAME " CAT Error($SVC cat:rc=$rc) "
    exit ${G_RTN_ERROR}
fi



#
#---ＳＯＲＴ
#
#
# フォーマットを揃えるため単独で再編成を行う
#
## 入力ファイルの改行コード変換(CRLF->LF)
nkf -Lu < ${MID_DIR_AC}/ACIFM042001.csv > ${MID_DIR_AC}/ACIFM042001_TMP1_EO3010740J0.csv

bsort -s -z220 -Tflt -t, -11.11asca  \
 -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,\'\ \'.1asc,12.12,13.8,14.8,15.8,16.8,17.8,18.2,19.8,20.2,21.2,22.1,23.2,\'\ \'.1asc,\'\ \'.1asc,\'\ \'.1asc,24.4,25.1,26.30 \
 -o ${MID_DIR_AC}/ACIFM042001_TMP2_EO3010740J0.csv \
 ${MID_DIR_AC}/ACIFM042001_TMP1_EO3010740J0.csv

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

bsortex -copy \
-record recform=txtcsv \
-input reclen=300 file=${EDIT_FILE_01} reconst="0.END" \
-output file=${EDIT_FILE_02}  linedlmt=crlf

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

bsortex -copy \
-record recform=txtcsv \
-input reclen=300 file=${MID_DIR_AC}/ACIFM042001_TMP2_EO3010740J0.csv reconst="0.END" \
-output file=${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv linedlmt=crlf

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT step3 Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT step3 Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
# IT1-2018-0000013 MOD START
# ANK-3296-00-00 MOD START
#bsort -s -z260 -Tflt -t, \
#  -1.6ascaN,9.3asca,10.12asca,11.11asca,0.10asca,5.20asca,6.24asca,20.8asca,14.8asca,15.8asca \
#  -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.12,13.12,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.2,22.2,23.2,24.4,25.1,26.2,27.4,28.4,29.1,30.30 \
#  -o ${MID_DIR_AC}/ACIFI016007.csv \
#  ${MID_DIR_AC}/ACIFI016009_[0-9].csv \
#  ${MID_DIR_AC}/ACIFI016102.csv \
#  ${MID_DIR_AC}/ACIFI016003.csv \
#  ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv \
#  ${EDIT_FILE_02} \
#  ${MID_DIR_AC}/ACIFI016017.csv \
#  ${MID_DIR_AC}/ACIFM084045.csv \
#  ${MID_DIR_AC}/ACIFM084046.csv \
#  ${MID_DIR_AC}/ACIFI016089.csv \
#  ${MID_DIR_AC}/ACIFI016098.csv
#bsort -s -z260 -Tflt -t, \
#  -1.6ascaN,9.3asca,10.12asca,11.11asca,0.10asca,5.20asca,6.24asca,20.8asca,14.8asca,15.8asca \
#  -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.12,13.12,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.2,22.2,23.2,24.4,25.1,26.2,27.4,28.4,29.1,30.30 \
#  -o ${MID_DIR_AC}/ACIFI016007.csv \
#  ${MID_DIR_AC}/ACIFI016009_[0-9].csv \
#  ${MID_DIR_AC}/ACIFI016102.csv \
#  ${MID_DIR_AC}/ACIFI016003.csv \
#  ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv \
#  ${EDIT_FILE_02} \
#  ${MID_DIR_AC}/ACIFI016017.csv \
#  ${MID_DIR_AC}/ACIFM084045.csv \
#  ${MID_DIR_AC}/ACIFM084046.csv \
#  ${MID_DIR_AC}/ACIFI016089.csv \
#  ${MID_DIR_AC}/ACIFI016098.csv \
#  ${MID_DIR_AC}/ACIFM294001.csv
# ANK-3296-00-00 MOD END
# ANK-3404-00-00 MOD START
#bsort -s -z260 -Tflt -t, \
#  -1.6ascaN,9.3asca,10.12asca,11.11asca,0.10asca,5.20asca,6.24asca,20.8asca,14.8asca,15.8asca \
#  -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.12,13.12,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.2,22.2,23.2,24.4,25.1,26.2,27.4,28.4,29.1,30.30 \
#  -o ${MID_DIR_AC}/ACIFI016007.csv \
#  ${MID_DIR_AC}/ACIFI016009_[0-9].csv \
#  ${MID_DIR_AC}/ACIFI016102.csv \
#  ${MID_DIR_AC}/ACIFI016003.csv \
#  ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv \
#  ${EDIT_FILE_02} \
#  ${MID_DIR_AC}/ACIFI016017.csv \
#  ${MID_DIR_AC}/ACIFM084045.csv \
#  ${MID_DIR_AC}/ACIFM084046.csv \
#  ${MID_DIR_AC}/ACIFI016089.csv \
#  ${MID_DIR_AC}/ACIFI016098.csv \
#  ${MID_DIR_AC}/ACIFI016119.csv
#
#---mineo単独料金情報ファイルの存在チェック
#
# ST-2018-0000030 MOD START
#if [ -r ${MID_DIR_AC}/ACIFI016120.csv ]; then
#    bsort -s -z260 -Tflt -t, \
#      -1.6ascaN,9.3asca,10.12asca,11.11asca,0.10asca,5.20asca,6.24asca,20.8asca,14.8asca,15.8asca \
#      -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.12,13.12,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.2,22.2,23.2,24.4,25.1,26.2,27.4,28.4,29.1,30.30 \
#      -o ${MID_DIR_AC}/ACIFI016007.csv \
#      ${MID_DIR_AC}/ACIFI016009_[0-9].csv \
#      ${MID_DIR_AC}/ACIFI016102.csv \
#      ${MID_DIR_AC}/ACIFI016003.csv \
#      ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv \
#      ${EDIT_FILE_02} \
#      ${MID_DIR_AC}/ACIFI016017.csv \
#      ${MID_DIR_AC}/ACIFM084045.csv \
#      ${MID_DIR_AC}/ACIFM084046.csv \
#      ${MID_DIR_AC}/ACIFI016089.csv \
#      ${MID_DIR_AC}/ACIFI016098.csv \
#      ${MID_DIR_AC}/ACIFI016119.csv \
#      ${MID_DIR_AC}/ACIFI016120.csv
# ANK-4402-00-00 MOD START
#if [ -r ${MID_DIR_AC}/ACIFI016121.csv ]; then
#    bsort -s -z260 -Tflt -t, \
#      -1.6ascaN,9.3asca,10.12asca,11.11asca,0.10asca,5.20asca,6.24asca,20.8asca,14.8asca,15.8asca \
#      -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.12,13.12,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.2,22.2,23.2,24.4,25.1,26.2,27.4,28.4,29.1,30.30 \
#      -o ${MID_DIR_AC}/ACIFI016007.csv \
#      ${MID_DIR_AC}/ACIFI016009_[0-9].csv \
#      ${MID_DIR_AC}/ACIFI016102.csv \
#      ${MID_DIR_AC}/ACIFI016003.csv \
#      ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv \
#      ${EDIT_FILE_02} \
#      ${MID_DIR_AC}/ACIFI016017.csv \
#      ${MID_DIR_AC}/ACIFM084045.csv \
#      ${MID_DIR_AC}/ACIFM084046.csv \
#      ${MID_DIR_AC}/ACIFI016089.csv \
#      ${MID_DIR_AC}/ACIFI016098.csv \
#      ${MID_DIR_AC}/ACIFI016119.csv \
#      ${MID_DIR_AC}/ACIFI016121.csv
## ST-2018-0000030 MOD END
#else
#    bsort -s -z260 -Tflt -t, \
#      -1.6ascaN,9.3asca,10.12asca,11.11asca,0.10asca,5.20asca,6.24asca,20.8asca,14.8asca,15.8asca \
#      -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.12,13.12,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.2,22.2,23.2,24.4,25.1,26.2,27.4,28.4,29.1,30.30 \
#      -o ${MID_DIR_AC}/ACIFI016007.csv \
#      ${MID_DIR_AC}/ACIFI016009_[0-9].csv \
#      ${MID_DIR_AC}/ACIFI016102.csv \
#      ${MID_DIR_AC}/ACIFI016003.csv \
#      ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv \
#      ${EDIT_FILE_02} \
#      ${MID_DIR_AC}/ACIFI016017.csv \
#      ${MID_DIR_AC}/ACIFM084045.csv \
#      ${MID_DIR_AC}/ACIFM084046.csv \
#      ${MID_DIR_AC}/ACIFI016089.csv \
#      ${MID_DIR_AC}/ACIFI016098.csv \
#      ${MID_DIR_AC}/ACIFI016119.csv
if [ -r ${MID_DIR_AC}/ACIFI016121.csv ]; then
    bsort -s -z260 -Tflt -t, \
      -1.6ascaN,9.3asca,10.12asca,11.11asca,0.10asca,5.20asca,6.24asca,20.8asca,14.8asca,15.8asca \
      -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.12,13.12,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.2,22.2,23.2,24.4,25.1,26.2,27.4,28.4,29.1,30.30 \
      -o ${MID_DIR_AC}/ACIFI016007.csv \
      ${MID_DIR_AC}/ACIFI016009_[0-9].csv \
      ${MID_DIR_AC}/ACIFI016102.csv \
      ${MID_DIR_AC}/ACIFI016003.csv \
      ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv \
      ${EDIT_FILE_02} \
      ${MID_DIR_AC}/ACIFI016017.csv \
      ${MID_DIR_AC}/ACIFM084045.csv \
      ${MID_DIR_AC}/ACIFM084046.csv \
      ${MID_DIR_AC}/ACIFI016089.csv \
      ${MID_DIR_AC}/ACIFI016098.csv \
      ${MID_DIR_AC}/ACIFI016119.csv \
      ${MID_DIR_AC}/ACIFI016121.csv \
      ${MID_DIR_AC}/ACIFI016100.csv
else
    bsort -s -z260 -Tflt -t, \
      -1.6ascaN,9.3asca,10.12asca,11.11asca,0.10asca,5.20asca,6.24asca,20.8asca,14.8asca,15.8asca \
      -e0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.12,13.12,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.2,22.2,23.2,24.4,25.1,26.2,27.4,28.4,29.1,30.30 \
      -o ${MID_DIR_AC}/ACIFI016007.csv \
      ${MID_DIR_AC}/ACIFI016009_[0-9].csv \
      ${MID_DIR_AC}/ACIFI016102.csv \
      ${MID_DIR_AC}/ACIFI016003.csv \
      ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv \
      ${EDIT_FILE_02} \
      ${MID_DIR_AC}/ACIFI016017.csv \
      ${MID_DIR_AC}/ACIFM084045.csv \
      ${MID_DIR_AC}/ACIFM084046.csv \
      ${MID_DIR_AC}/ACIFI016089.csv \
      ${MID_DIR_AC}/ACIFI016098.csv \
      ${MID_DIR_AC}/ACIFI016119.csv \
      ${MID_DIR_AC}/ACIFI016100.csv
# ANK-4402-00-00 MOD END
fi
# ANK-3404-00-00 MOD END
# IT1-2018-0000013 MOD END

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


# ST4-2014-0000066 ADD START#
#---ＳＯＲＴ
#
# 請求契約番号の9桁目で10分割
bsortex \
  -copy \
  -record recform=txtfix \
  -input reclen=260 \
  file=${MID_DIR_AC}/ACIFI016007.csv \
  -output file=${MID_DIR_AC}/ACIFI016007_0.csv case="8.1asc.eq.'0'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_1.csv case="8.1asc.eq.'1'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_2.csv case="8.1asc.eq.'2'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_3.csv case="8.1asc.eq.'3'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_4.csv case="8.1asc.eq.'4'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_5.csv case="8.1asc.eq.'5'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_6.csv case="8.1asc.eq.'6'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_7.csv case="8.1asc.eq.'7'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_8.csv case="8.1asc.eq.'8'" reconst=0.END \
  -output file=${MID_DIR_AC}/ACIFI016007_9.csv case="8.1asc.eq.'9'" reconst=0.END ;

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

## 中間ファイルの削除
rm ${MID_DIR_AC}/ACIFM042001_TMP1_EO3010740J0.csv
rm ${MID_DIR_AC}/ACIFM042001_TMP2_EO3010740J0.csv
rm ${MID_DIR_AC}/ACIFM042001_TMP3_EO3010740J0.csv
rm ${EDIT_FILE_01}
rm ${EDIT_FILE_02}

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

exit ${G_RTN_NORMAL}
