#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：顧客管理
#
# シェル名      ：住所変更対象機器抽出
#
# 機能          ：住所変更対象機器削除対象を判定する情報を取得する。
#詳細仕様は、「SSA10_EO2920440J0_機器ＯＰサービス解約予約＿住所変更対象機器抽出(補足説明）.xlsx」
#
#
# コマンド形式  ：EO2920440J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# V14.00.00      2015/05/21   FJ)土井     【OM-2015-0001266】アンロード対応 バッチアンロード処理統合①
# v14.01.00      2015/07/07   FJ)土井     【ST-2015-0000031】性能改善カレント抽出対応
# v19.00.00      2015/10/08   FJ)有本     【OM-2015-0002578】共通ＵＮＬＯＡＤ項目削除対応
# v20.00.00      2015/11/18   FJ)福山     【OM-2015-0003006】ソート削除対応
# v23.00.00      2016/05/16   FJ)中山     【OM-2016-0001057】機器オプション解約予約確定実行エラー対応
#
##############################################################

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

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

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

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

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


#
#--- アンロード関数
#       p1：テーブル名／クエリファイル名
EXEC_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
}

#
#--- 存在チェック関数
#       p1：ファイルパス
EXEC_CHECK()
{
   if [ ! -r $1 ]
   then
       sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($1) "
       echo $JOBNAME " File is nonexist($1) "
       exit ${G_RTN_ERROR}
   fi
}

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：DEFファイルパス
#      p3：TMPDEFファイルパス
EXEC_MATCHING()
{
   OUTFILE=$1
   DEF=$2
   TMPDEF=$3

   # 出力ファイルの初期化
   cat /dev/null > ${OUTFILE}
   cat /dev/null > ${TMPDEF}
   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

   # DEFTMPファイル作成
   cat ${DEF}>${TMPDEF}
   sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEF}

   # マッチング実行
   export ZTLOUTFILE=${OUTFILE}
   ${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEF}
   rc=$?
   if [ $rc -ne 0 ]
   then
      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error($2:rc=$rc) "
      echo $JOBNAME " matching error($2:rc=$rc) "
      exit ${G_RTN_ERROR}
   fi
}

#
#--- ファイル定義
#
#アンロード用 - SQLファイル
# 2015/05/21 【OM-2015-0001266】アンロード対応 コメント化 START
#SQLFILE_KU0011=${SQL_DIR}/KK_U_KU0011_11.sql
# 2015/05/21 【OM-2015-0001266】アンロード対応 コメント化 END

# 2015/05/25 【OM-2015-0001266】アンロード対応 STATR
# 共通アンロードファイル名
# 工事案件スキーマ取得(全件)
COMULD_KU0011_ALL=${MID_DIR_CC}/CCIFM016001.csv
# 2015/05/25 【OM-2015-0001266】アンロード対応 END

SQLFILE_KU0141=${SQL_DIR}/KK_U_KU0141_03.sql

#アンロード用 - 出力結果
SQLOUT_KU0011=${MID_DIR_KK}/KKIFM551001_UL_KU0011.csv
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 DEL START
#SQLOUT_KU0141=${MID_DIR_KK}/KKIFM551001_UL_KU0141.csv
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 DEL END

#bsortex - ソート結果
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 DEL START
#KU0011_SORT=${MID_DIR_KK}/KKIFM551001_KU0011_SORT.tmp
#KU0141_SORT=${MID_DIR_KK}/KKIFM551001_KU0141_SORT.tmp
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 DEL END

#bsortex - マージ結果
KU0011_CRNT=${MID_DIR_KK}/KKIFM551001_KU0011_CRNT.tmp
KU0141_CRNT=${MID_DIR_KK}/KKIFM551001_KU0141_CRNT.tmp

KK0081_CRNT=${MID_DIR_KK}/KKIFM551001_KK0081_CRNT.tmp

#マッチング定義
DEF_0361=${G_TOOLSH}/util/def/KK_CM_0361.def
DEF_TMP_0361=${G_TOOLSH}/util/def/KK_CM_0361.tmp.def

DEF_0362=${G_TOOLSH}/util/def/KK_CM_0362.def
DEF_TMP_0362=${G_TOOLSH}/util/def/KK_CM_0362.tmp.def

#最終出力ファイル
OUT_0361=${MID_DIR_KK}/KKIFM553001.0361.tmp
OUT_0362=${MID_DIR_KK}/KKIFM553001.0362.tmp

#OM-2016-0001057 ADD START
OUT_0362_WORK=${MID_DIR_KK}/KKIFM553001.0362.work.tmp
OUT_0362_SORT=${MID_DIR_KK}/KKIFM553001.0362.sort.tmp
#OM-2016-0001057 ADD END

EXEC_CHECK ${DEF_0361}
EXEC_CHECK ${DEF_0362}
EXEC_CHECK ${SQLFILE_KU0011}
EXEC_CHECK ${SQLFILE_KU0141}

#
#--- 初期処理 前回実施時に出力したファイルを全てクリアする。
#
#アンロード結果出力ファイル
# 2015/05/21 【OM-2015-0001266】アンロード対応 コメント化 START
#cat /dev/null > ${SQLOUT_KU0011}
# 2015/05/21 【OM-2015-0001266】アンロード対応 コメント化 END
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 MOD START
#cat /dev/null > ${SQLOUT_KU0141}
cat /dev/null > ${KU0141_CRNT}
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 MOD END
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 DEL START
#cat /dev/null > ${KU0011_SORT}
#cat /dev/null > ${KU0141_SORT}
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 DEL END
cat /dev/null > ${DEF_TMP_0361}
cat /dev/null > ${OUT_0361}
cat /dev/null > ${DEF_TMP_0362}
cat /dev/null > ${OUT_0362}
#OM-2016-0001057 ADD START
cat /dev/null > ${OUT_0362_WORK}
cat /dev/null > ${OUT_0362_SORT}
#OM-2016-0001057 ADD END

#--- UNLOAD処理
# 2015/05/21 【OM-2015-0001266】アンロード対応 コメント化 START
#EXEC_UNLOAD $SQLFILE_KU0011 $SQLOUT_KU0011
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 MOD START
#EXEC_UNLOAD $SQLFILE_KU0141 $SQLOUT_KU0141
EXEC_UNLOAD $SQLFILE_KU0141 $KU0141_CRNT
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 MOD END
# 2015/05/21 【OM-2015-0001266】アンロード対応 コメント化 END

# KU0011 sort
# 2015/05/21 【OM-2015-0001266】アンロード対応 コメント START
#bsortex \
#   -sort key=0.10asc \
#   -record recform=txtcsv \
#   -input file=${SQLOUT_KU0011} \
#        reclen=200 \
#        include="3.1asc.eq.'0'.and.2.3asc.eq.'003'.and.(1.3asc.eq.'130'.or.1.3asc.eq.'140'.or.1.3asc.eq.'150'.or.1.3asc.eq.'160'.or.1.3asc.eq.'170'.or.1.3asc.eq.'180')" \
#   -output file=${KU0011_CRNT}
# 2015/05/21 【OM-2015-0001266】アンロード対応 コメント END
### ST-2015-0000031 性能改善カレント抽出対応 2015/07/07 土井 MOD START
#bsortex \
#   -sort key=0.10asc \
#   -record recform=txtcsv \
#   -input file=${COMULD_KU0011_ALL} \
#        reclen=${ULD_REC_LEN_KU0011} \
#        reconst="0.10,1.3,9.3,202.1" \
#| bsortex \
#   -sort key=0.10asc \
#   -record recform=txtcsv \
#   -input \
#        reclen=200 \
#        include="3.1asc.eq.'0'.and.2.3asc.eq.'003'.and.(1.3asc.eq.'130'.or.1.3asc.eq.'140'.or.1.3asc.eq.'150'.or.1.3asc.eq.'160'.or.1.3asc.eq.'170'.or.1.3asc.eq.'180')" \
#   -output file=${KU0011_CRNT}
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 MOD START
#bsortex \
#   -sort key=0.10asc \
#   -record recform=txtcsv \
#   -input file=${COMULD_KU0011_ALL} \
#    reclen=${ULD_REC_LEN_KU0011} \
#    reconst="0.10,1.3,9.3,202.1" \
#    include="9.3asc.eq.'003'.and.(1.3asc.eq.'130'.or.1.3asc.eq.'140'.or.1.3asc.eq.'150'.or.1.3asc.eq.'160'.or.1.3asc.eq.'170'.or.1.3asc.eq.'180')" \
#   -output file=${KU0011_CRNT}
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 MOD START
#bsortex \
#   -sort key=0.10asc \
#   -record recform=txtcsv \
#   -input file=${COMULD_KU0011_ALL} \
#    reclen=${ULD_REC_LEN_KU0011} \
#    reconst="0.10,1.3,2.3,3.1" \
#    include="2.3asc.eq.'003'.and.(1.3asc.eq.'130'.or.1.3asc.eq.'140'.or.1.3asc.eq.'150'.or.1.3asc.eq.'160'.or.1.3asc.eq.'170'.or.1.3asc.eq.'180')" \
#   -output file=${KU0011_CRNT}
bsortex \
   -copy \
   -record recform=txtcsv \
   -input file=${COMULD_KU0011_ALL} \
    reclen=${ULD_REC_LEN_KU0011} \
    reconst="0.10,1.3,2.3,3.1" \
    include="2.3asc.eq.'003'.and.(1.3asc.eq.'130'.or.1.3asc.eq.'140'.or.1.3asc.eq.'150'.or.1.3asc.eq.'160'.or.1.3asc.eq.'170'.or.1.3asc.eq.'180')" \
   -output file=${KU0011_CRNT}
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 MOD END
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 MOD END
### ST-2015-0000031 性能改善カレント抽出対応 2015/07/07 土井 MOD END
rc=$?
if [ $rc -ne 0 ]
then
  sh ${G_TOOLSH}/EOK010210J0.sh JOBNAME " KU0011 Sort Error(KU0011 sort:$rc) "
  echo $JOBNAME " KU0011 Sort Error(KU0011 sort:$rc)"
  exit ${G_RTN_ERROR}
fi

# KU0141 sort
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 DEL START
#bsortex \
#   -sort key=0.10asc \
#   -record recform=txtcsv \
#   -input file=${SQLOUT_KU0141} \
#        reclen=50 \
#        include="2.1asc.eq.'0'" \
#   -output file=${KU0141_CRNT}
#rc=$?
#if [ $rc -ne 0 ]
#then
#  sh ${G_TOOLSH}/EOK010210J0.sh JOBNAME " KK0161 Sort Error(KK0161 sort:$rc) "
#  echo $JOBNAME " KK0161 Sort Error(KK0161 sort:$rc)"
#  exit ${G_RTN_ERROR}
#fi
# OM-2015-0003006 ソート削除対応 2015/11/18 福山 DEL END

##################################
#マッチング実施
# KKIFM553001.0362.tmpの機器提供サービス契約に紐づく機器オプションサービス契約の全量を取得
# P1 DEF_0362=${G_TOOLSH}/util/def/KK_CM_0362.def
# P2 DEF_TMP_0362=${G_TOOLSH}/util/def/KK_CM_0362.tmp.def
# P3 OUT_0362=${MID_DIR_KK}/KKIFM553001.0362.tmp

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：DEFファイルパス
#      p3：TMPDEFファイルパス
#OM-2016-0001057 MOD START
#EXEC_MATCHING ${OUT_0362} ${DEF_0362} ${DEF_TMP_0362}
EXEC_MATCHING ${OUT_0362_WORK} ${DEF_0362} ${DEF_TMP_0362}

#サービス契約回線内訳番号、回線内訳使用終了年月日でソート
#　回線内訳使用開始年月日＜＝運用日付、かつ、運用日付＜＝回線内訳使用終了年月日で抽出
bsortex \
   -sort key=1.12asc,4.8asc \
   -record recform=txtcsv \
   -input file=${OUT_0362_WORK} \
        reclen=100 \
        include="3.8asc.le.'${OPD}',4.8asc.ge.'${OPD}'" \
   -output file=${OUT_0362_SORT} \
        reconst="0.10,1.12,2.17"

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

#マージ
bsortex \
    -merge key=1.12asc \
    -record recform=txtcsv \
    -input file=${OUT_0362_SORT} \
         reclen=50 \
    -summary suppress last \
    -output file=${OUT_0362}
    
rc=$?
if [ $rc -ne 0 ]
then
  sh ${G_TOOLSH}/EOK010210J0.sh JOBNAME " ${OUT_0362} Merge Error(${OUT_0362} merge:$rc)"
  echo $JOBNAME " ${OUT_0362} Merge Error(${OUT_0362} merge:$rc)"
  exit ${G_RTN_ERROR}
fi
#OM-2016-0001057 MOD END

##################################
#マッチング実施
# KKIFM553001.0361.tmpの機器提供サービス契約に紐づく機器オプションサービス契約の全量を取得
# P1 DEF_0361=${G_TOOLSH}/util/def/KK_CM_0361.def
# P2 DEF_TMP_0361=${G_TOOLSH}/util/def/KK_CM_0361.tmp.def
# P3 OUT_0361=${MID_DIR_KK}/KKIFM553001.0361.tmp

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：DEFファイルパス
#      p3：TMPDEFファイルパス
EXEC_MATCHING ${OUT_0361} ${DEF_0361} ${DEF_TMP_0361}

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

exit ${G_RTN_NORMAL}
