#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：工事会社配送機器更新対象抽出
#
# 機能          ：住所変更向け工事が完了し、サービス契約が提供中で開始されている締結済みまたは契約変更中の機器契約の情報を抽出する
#
# コマンド形式  ：EO2092410J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# 47.00.00       20191114     FJ)吉田      OM-2019-0000674_住変時にSTB有⇒有プラン変更・4KSTBへ交換・住変確定より前に工事完了するとBCAS解約できない
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

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



##############################################################
# 共通関数
##############################################################

#
#--- アンロード関数
#       p1：出力ファイル名
#       p2：クエリファイル名
#       p3：バインド変数置換文字
#
EXEC_UNLOAD()
{
	OTF=$1
	SQL_FILE=$2
	BIND_VAL=$3
	
	SQL_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}.W_ULD.sql
	# SQLクエリファイル初期化
	cat /dev/null > ${SQL_WORK_FILE}
	
	# SQL定義ファイルが存在しない場合エラー
	if [ ! -r ${SQL_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${SQL_FILE} > ${SQL_WORK_FILE}
	if [ "${BIND_VAL}" != "" ]
	then
		for bind in ${BIND_VAL}
		do
			sed -i, -e 0,/?/s/?/"'"$bind"'"/ ${SQL_WORK_FILE}
		done
	fi
	
	# 出力ファイルの初期化
	cat /dev/null > ${OTF}
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error(${OTF}:rc=$rc) "
		echo $JOBNAME " File cat error(${OTF}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
	
	# unload
	sh ${G_TOOLSH}/EOKULD02.sh ${SQL_WORK_FILE} ${OTF}
	
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error(${SQL_FILE}:rc=$rc) "
		echo $JOBNAME " unload error(${SQL_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：マッチングクエリファイルパス
#      p3：バインド変数
EXEC_MATCHING()
{
	OUTFILE=$1
	MATCHING_FILE=$2
	CONV_FILE=$3
	MATCHING_QUERY_WORK=${ULD_WORK_DIR}/${JOBNAME}.W_MATCH_QUERY.tmp

	# マッチングクエリファイルの初期化
	cat /dev/null > ${MATCHING_QUERY_WORK}
	
	# マッチングクエリファイルの存在チェック
	if [ ! -r ${MATCHING_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${MATCHING_FILE} > ${MATCHING_QUERY_WORK}
	
	for bind in ${CONV_FILE}
	do
		# 入力パラメータのエスケープ処理
		bind_escape=`echo $bind | sed "s/\//\\\\\\\\\//g"`
		sed -i, -e 0,/#FILE#/s/#FILE#/$bind_escape/ ${MATCHING_QUERY_WORK}
		
	done
	
	# 出力ファイルの初期化
	cat /dev/null > ${OUTFILE}
	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

	# マッチング実行
	export ZTLOUTFILE=${OUTFILE}
	${G_TOOLSH}/util/bin/ZTLMAT01 ${MATCHING_QUERY_WORK}
	
	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
}

#
# -- カレント取得処理
#
FILTER_CURRENT()
{
	INF=$1
	OTF=$2
	REC_LEN=$3
	BS_DEF=$4
	
	SORT_KEY=""
	
	# ソートKEYを構築（@keyで始まる定義を取得）
	for key in ${BS_DEF}
	do
		case "$key" in 
			@key* ) 
				if [ "${SORT_KEY}" != "" ]
				then
					SORT_KEY="${SORT_KEY},"
				fi
				SORT_KEY="${SORT_KEY}${key%=*}"
			;;
		esac
	done
	
	bsortex -define ${BS_DEF} -sort key=${SORT_KEY},@rsvAplyYmd,@supkey -record recform=txtcsv -input reclen=${REC_LEN} include="@mkflg.eq.'0'.and.@rsvAplyCd.eq.'2'.and.@rsvAplyYmd.le.'${OPD}'" < ${INF} \
	  | bsortex -define ${BS_DEF} -merge key="${SORT_KEY}" -record recform=txtcsv -input reclen=${REC_LEN} -summary suppress last -output file=${OTF}
	  
	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
}

#
# -- カレント取得処理
#
FILTER_KIKI_TTDKCHU()
{
	INF=$1
	OTF=$2
	REC_LEN=$3
	BS_DEF=$4
	
	SORT_KEY=""
	
	# ソートKEYを構築（@keyで始まる定義を取得）
	for key in ${BS_DEF}
	do
		case "$key" in 
			@key* ) 
				if [ "${SORT_KEY}" != "" ]
				then
					SORT_KEY="${SORT_KEY},"
				fi
				SORT_KEY="${SORT_KEY}${key%=*}"
			;;
		esac
	done
	
	# ソートは機器提供サービス契約番号、世代登録年月日時分秒
	bsortex -define ${BS_DEF} -sort key=${SORT_KEY},@supkey -record recform=txtcsv -input reclen=${REC_LEN} include="@mkflg.eq.'0'.and.@rsvAplyCd.eq.'1'" < ${INF} \
	  | bsortex -define ${BS_DEF} -merge key="${SORT_KEY}" -record recform=txtcsv -input reclen=${REC_LEN} -summary suppress last -output file=${OTF}
	  
	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
}

#
# -- 作業ファイルの削除
#
REMOVE_WORK_FILE()
{
	for workfile in `ls -1 ${MID_DIR_KK}/${JOBNAME}.W_*.csv`
	do
		rm -f ${workfile}
	done
	
}

############### -- ST4-2014-0000023 del start -- ###################
#KK0081_ULD=${MID_DIR_KK}/${JOBNAME}.W_KK0081_U.csv
############### -- ST4-2014-0000023 del end -- ###################
KK0161_ULD=${MID_DIR_KK}/${JOBNAME}.W_KK0161_U.csv
############### -- ST4-2014-0000023 del start -- ###################
#KK0341_ULD=${MID_DIR_KK}/${JOBNAME}.W_KK0341_U.csv
############### -- ST4-2014-0000023 del end -- ###################
KK1471_ULD=${MID_DIR_KK}/${JOBNAME}.W_KK1471_U.csv
############### -- ST4-2014-0000023 mod start -- ###################
#DK0011_ULD=${MID_DIR_KK}/${JOBNAME}.W_DK0011_U.csv
#DK0021_ULD=${MID_DIR_KK}/${JOBNAME}.W_DK0021_U.csv
DK0011_ULD=${MID_DIR_KK}/KKIFM613001.csv
DK0021_ULD=${MID_DIR_KK}/KKIFM614001.csv
############### -- ST4-2014-0000023 mod end -- ###################
KU0011_ULD=${MID_DIR_KK}/${JOBNAME}.W_KU0011_U.csv
KU0141_ULD=${MID_DIR_KK}/${JOBNAME}.W_KU0141_U.csv

MATCH_OTF=${MID_DIR_KK}/${JOBNAME}.W_MATCH_OTF.csv
TMP_OTF=${MID_DIR_KK}/${JOBNAME}.W_TMP_OTF.csv

############### -- ST4-2014-0000023 mod start -- ###################
#KK0081_CURRENT=${MID_DIR_KK}/${JOBNAME}.W_KK0081_CUR.csv
KK0081_CURRENT=${MID_DIR_KK}/KKIFM612001.csv
############### -- ST4-2014-0000023 mod end -- ###################
KK0081_TRG_TV=${MID_DIR_KK}/${JOBNAME}.W_KK0081_TRG_TV.csv
KK0081_TRG_NETTEL=${MID_DIR_KK}/${JOBNAME}.W_KK0081_TRG_NETTEL.csv
KK0161_CURRENT=${MID_DIR_KK}/${JOBNAME}.W_KK0161_CUR.csv
KK0161_TRG=${MID_DIR_KK}/${JOBNAME}.W_KK0161_TRG.csv
############### -- ST4-2014-0000023 mod start -- ###################
#KK0341_CURRENT=${MID_DIR_KK}/${JOBNAME}.W_KK0341_CUR.csv
KK0341_CURRENT=${MID_DIR_KK}/KKIFM611001.csv
############### -- ST4-2014-0000023 mod end -- ###################
KK0341_TRG_SVC_KIKI=${MID_DIR_KK}/${JOBNAME}.W_KK0341_TRG_SVC_KIKI.csv
KK0341_TRG_KAISEN_KIKI=${MID_DIR_KK}/${JOBNAME}.W_KK0341_TRG_KAISEN_KIKI.csv

############### -- ST4-2014-0000023 mod start -- ###################
#KK0341_TTDKCHU=${MID_DIR_KK}/${JOBNAME}.W_KK0341_TTDK.csv
KK0341_TTDKCHU=${MID_DIR_KK}/KKIFM611002.csv
############### -- ST4-2014-0000023 mod end -- ###################
KK0341_TTDKCHU_TRG_SVC_KIKI=${MID_DIR_KK}/${JOBNAME}.W_KK0341_TTDK_TRG_SVC_KIKI.csv
KK0341_TTDKCHU_TRG_KAISEN_KIKI=${MID_DIR_KK}/${JOBNAME}.W_KK0341_TTDK_TRG_KAISEN_KIKI.csv


DK0011_TRG=${MID_DIR_KK}/${JOBNAME}.W_DK0011_TRG.csv
DK0021_TRG=${MID_DIR_KK}/${JOBNAME}.W_DK0021_TRG.csv


KU0011_TRG=${MID_DIR_KK}/${JOBNAME}.W_KU0011_TRG.csv
KU0141_TRG=${MID_DIR_KK}/${JOBNAME}.W_KU0141_TRG.csv
KK1471_TRG=${MID_DIR_KK}/${JOBNAME}.W_KK1471_TRG.csv

KKIFM571_ADDFILE=${MID_DIR_KK}/KKIFM571001.csv
KKIFM571_ADDFILE_BK=${MID_DIR_KK}/KKIFM571003.csv


#
# BSORTの項目定義
#
KK0081_ITM_DEF="@svcKeiNo=0.10asc @geneAddDtm=1.17asc @rsvAplyYmd=2.8asc @rsvAplyCd=3.1asc @mkFlg=4.1asc @svcKeiStat=5.3asc @svcCd=6.2asc"
KK0161_ITM_DEF="@svcKeiUcwkNo=0.12asc @geneAddDtm=1.17asc @rsvAplyYmd=2.8asc @rsvAplyCd=3.1asc @mkFlg=4.1asc @svcKeiUcwkStat=5.3asc @svcKeiNo=6.10asc"
############### -- ST4-2014-0000023 mod start -- ###################
#KK0341_ITM_DEF="@kktkSvcKeiNo=0.12asc @geneAddDtm=1.17asc @svcKeiNo=2.10asc @taknkikiSbtCd=3.2asc @kktkSvcKeiStat=4.3asc @kikiChgNo=5.12asc @taknkikiModelCd=6.20asc @kikiSeizoNo=7.20asc @rsvAplyYmd=8.8asc @rsvAplyCd=9.1asc @mkFlg=10.1asc @svcKeiUcwkNo=11.12asc @svcKeiKaisenUcwkNo=12.12asc"
KK0341_ITM_DEF="@kktkSvcKeiNo=0.12asc @geneAddDtm=1.17asc @svcKeiNo=2.10asc @taknkikiSbtCd=3.2asc @kktkSvcKeiStat=4.3asc @kikiChgNo=5.12asc @taknkikiModelCd=6.20asc @kikiSeizoNo=7.20asc @rsvAplyYmd=8.8asc @rsvAplyCd=9.1asc @mkFlg=10.1asc @idoDiv=11.5asc @svcKeiKaisenUcwkNo=12.12asc @svcKeiUcwkNo=13.12asc"
############### -- ST4-2014-0000023 mod end -- ###################
KK1471_ITM_DEF="@svcKeiNo=0.10asc @svcKeiKaisenUcwkNo=1.12asc @kojiakNo=2.10asc @kojiakJssiYmd=3.8asc @mkFlg=4.1asc"
DK0011_ITM_DEF="@haisoNo=0.10asc @haisoFinYmd=1.8asc @mkFlg=2.1asc @haisoStat=3.3asc"
DK0021_ITM_DEF="@haisoNo=0.10asc @kktkSvcKeiNo=1.12asc @kikiChgNo=2.12asc @kojiakNo=3.10asc @mkFlg=4.1asc @blank=5.1asc"
KU0011_ITM_DEF="@kojiakNo=0.10asc @kojiakStat=1.3asc @kojiUkOptntyIdoDiv=2.5asc @kojiakSbtCd=3.3asc @mkFlg=4.1asc"
KU0141_ITM_DEF="@kojiakTrgtTaknkikiStat=0.3asc @kojiakNo=1.10asc @stcTekkyoFlg=2.1asc @taknkikiSbtCd=3.2asc @kikiChgNo=4.12asc @kktkSvcKeiNo=5.12asc @mkFlg=6.1asc"

#
# -- アンロード処理（各基礎情報のアンロード）
#
UNLOAD_BASE_DATA()
{
############### -- ST4-2014-0000023 del start -- ###################
#	#サービス契約
#	EXEC_UNLOAD ${KK0081_ULD} ${SQL_DIR}/KK_U_KK0081_87.sql ""
#	#機器提供サービス契約
#	EXEC_UNLOAD ${KK0341_ULD} ${SQL_DIR}/KK_U_KK0341_23.sql ""
#	#配送
#	EXEC_UNLOAD ${DK0011_ULD} ${SQL_DIR}/KK_U_DK0011_06.sql ""
#	#配送対象物品
#	EXEC_UNLOAD ${DK0021_ULD} ${SQL_DIR}/KK_U_DK0021_05.sql ""
############### -- ST4-2014-0000023 del end -- ###################
	#サービス契約内訳
	EXEC_UNLOAD ${KK0161_ULD} ${SQL_DIR}/KK_U_KK0161_18.sql ""
	#工事完了ワーク
	EXEC_UNLOAD ${KK1471_TRG} ${SQL_DIR}/KK_U_KK1471_02.sql ""
	#工事案件
	EXEC_UNLOAD ${KU0011_ULD} ${SQL_DIR}/KK_U_KU0011_12.sql ""
	#工事案件対象宅内機器
	EXEC_UNLOAD ${KU0141_ULD} ${SQL_DIR}/KK_U_KU0141_04.sql ""
	
############### -- ST4-2014-0000023 del start -- ###################
#	#サービス契約カレント取得
#	FILTER_CURRENT ${KK0081_ULD} ${KK0081_CURRENT} 200 "@key1=0.10asc @supkey=1.17asc @mkflg=4.1asc @rsvAplyCd=3.1asc @rsvAplyYmd=2.8asc"
#	#機器提供サービス契約カレント取得
#	FILTER_CURRENT ${KK0341_ULD} ${KK0341_CURRENT} 300 "@key1=0.12asc @supkey=1.17asc @mkflg=10.1asc @rsvAplyCd=9.1asc @rsvAplyYmd=8.8asc"
#	#機器提供サービス契約変更手続き中レコード取得
#	FILTER_KIKI_TTDKCHU ${KK0341_ULD} ${KK0341_TTDKCHU} 300 "@key1=0.12asc @supkey=1.17asc @mkflg=10.1asc @rsvAplyCd=9.1asc @rsvAplyYmd=8.8asc"
############### -- ST4-2014-0000023 del end -- ###################
	#サービス契約内訳カレント取得
	FILTER_CURRENT ${KK0161_ULD} ${KK0161_CURRENT} 200 "@key1=0.12asc @supkey=1.17asc @mkflg=4.1asc @rsvAplyCd=3.1asc @rsvAplyYmd=2.8asc"

############### -- OM-2019-0000674 DEL START -- ###################
#	#
#	# *** 有効なサービス契約の取得（カレントから絞込み）（テレビ） ***
#	#
#	bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=100 \
#			include="@svcCd.eq.'03'.and.@svcKeiStat.eq.'100'" -output file=${KK0081_TRG_TV} < ${KK0081_CURRENT}
#	
#	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
############### -- OM-2019-0000674 DEL END -- ###################
	
	
	#
	# *** 有効なサービス契約の取得（カレントから絞込み）（ネット・電話） ***
	#
	bsortex -define ${KK0081_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=100 \
			include="(@svcCd.eq.'01'.or.@svcCd.eq.'02').and.@svcKeiStat.eq.'100'" -output file=${KK0081_TRG_NETTEL} < ${KK0081_CURRENT}
	
	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
	
	
	#
	# *** 有効なサービス契約内訳の取得（カレントから絞込み）（テレビで使用） ***
	#
	bsortex -define ${KK0161_ITM_DEF} -sort key="@svcKeiNo" -record recform=txtcsv -input reclen=100 \
			include="@svcKeiUcwkStat.eq.'100'" -output file=${KK0161_TRG} < ${KK0161_CURRENT}
	
	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
	
	####  機器提供サービス契約取得（サービス契約に紐づく機器） ####
	
	#
	# *** 有効な機器提供サービス契約の取得（カレントから絞込み。サービス契約に紐づく機器）ソート用の区分を設定（"01"） ***
	#
	bsortex -define ${KK0341_ITM_DEF} -sort key="@kktkSvcKeiNo" -record recform=txtcsv -input reclen=200 \
			include="@kktkSvcKeiStat.eq.'030'.and.@svcKeiNo.ge.' '" reconst="0.END,'01'.2asc" -output file=${KK0341_TRG_SVC_KIKI} < ${KK0341_CURRENT}
	
	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

	#
	# *** 有効な機器提供サービス契約の取得（手続き中からの絞込み。サービス契約に紐づく機器）ソート用の区分を設定（"02"） ***
	#
	bsortex -define ${KK0341_ITM_DEF} -sort key="@kktkSvcKeiNo" -record recform=txtcsv -input reclen=200 \
			include="@kktkSvcKeiStat.eq.'110'.and.@svcKeiNo.ge.' '" reconst="0.END,'02'.2asc" -output file=${KK0341_TTDKCHU_TRG_SVC_KIKI} < ${KK0341_TTDKCHU}
	
	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
	
	######################################################################################



	####  機器提供サービス契約取得（回線に紐づく機器） ####
	
	#
	# *** 有効な機器提供サービス契約の取得（カレントから絞込み。サービス契約に紐づく機器）ソート用の区分を設定（"01"）(V-ONUを除く)  ***
	#
	############### -- OM-2019-0000674 MOD START -- ###################
	#bsortex -define ${KK0341_ITM_DEF} -sort key="@kktkSvcKeiNo" -record recform=txtcsv -input reclen=200 \
	#		include="@kktkSvcKeiStat.eq.'030'.and.@svcKeiKaisenUcwkNo.ge.' '" reconst="0.END,'01'.2asc" -output file=${KK0341_TRG_KAISEN_KIKI} < ${KK0341_CURRENT}
	bsortex -define ${KK0341_ITM_DEF} -sort key="@kktkSvcKeiNo" -record recform=txtcsv -input reclen=200 \
			include="@kktkSvcKeiStat.eq.'030'.and.@svcKeiKaisenUcwkNo.ge.' '.and.@taknkikiSbtCd.ne.'E0'" reconst="0.END,'01'.2asc" -output file=${KK0341_TRG_KAISEN_KIKI} < ${KK0341_CURRENT}
	############### -- OM-2019-0000674 MOD END -- ###################

	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

	#
	# *** 有効な機器提供サービス契約の取得（手続き中からの絞込み。サービス契約に紐づく機器）ソート用の区分を設定（"02"）(V-ONUを除く) ***
	#
	############### -- OM-2019-0000674 MOD START -- ###################
	#bsortex -define ${KK0341_ITM_DEF} -sort key="@kktkSvcKeiNo" -record recform=txtcsv -input reclen=200 \
	#		include="@kktkSvcKeiStat.eq.'110'.and.@svcKeiKaisenUcwkNo.ge.' '" reconst="0.END,'02'.2asc" -output file=${KK0341_TTDKCHU_TRG_KAISEN_KIKI} < ${KK0341_TTDKCHU}
	bsortex -define ${KK0341_ITM_DEF} -sort key="@kktkSvcKeiNo" -record recform=txtcsv -input reclen=200 \
			include="@kktkSvcKeiStat.eq.'110'.and.@svcKeiKaisenUcwkNo.ge.' '.and.@taknkikiSbtCd.ne.'E0'" reconst="0.END,'02'.2asc" -output file=${KK0341_TTDKCHU_TRG_KAISEN_KIKI} < ${KK0341_TTDKCHU}
	############### -- OM-2019-0000674 MOD END -- ###################
	
	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

	######################################################################################


	#
	# *** 有効な配送の取得（カレントから絞込み） ***
	#
	bsortex -define ${DK0011_ITM_DEF} -sort key="@haisoNo" -record recform=txtcsv -input reclen=100 \
			include="@haisoStat.eq.'004'.and.@mkFlg.eq.'0'" -output file=${DK0011_TRG} < ${DK0011_ULD}
	
	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

	#
	# *** 有効な配送対象物品の取得（カレントから絞込み） ***
	#
	bsortex -define ${DK0021_ITM_DEF} -sort key="@haisoNo" -record recform=txtcsv -input reclen=100 \
			include="@kojiakNo.ge.' '.and.@mkFlg.eq.'0'" -output file=${DK0021_TRG} < ${DK0021_ULD}
	
	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
	
	
	
	#
	# *** 有効な工事案件の取得（カレントから絞込み。住所変更の工事（新設側）を対象） ***
	#
	bsortex -define ${KU0011_ITM_DEF} -sort key="@kojiakNo" -record recform=txtcsv -input reclen=200 \
			include="@kojiakStat.eq.'200'.and.@kojiUkOptntyIdoDiv.eq.'00019'.and.(@kojiakSbtCd.eq.'001'.or.@kojiakSbtCd.eq.'003').and.@mkFlg.eq.'0'" -output file=${KU0011_TRG} < ${KU0011_ULD}
	
	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
	
	
	
	#
	# *** 有効な工事案件対象宅内機器の取得（カレントから絞込み） ***
	#
	bsortex -define ${KU0141_ITM_DEF} -sort key="@kojiakNo" -record recform=txtcsv -input reclen=300 \
			include="@kojiakTrgtTaknkikiStat.ne.'110'.and.@stcTekkyoFlg.eq.'1'.and.@mkFlg.eq.'0'" -output file=${KU0141_TRG} < ${KU0141_ULD}
	
	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 > ${MID_DIR_KK}/KKIFM571.csv

#各種アンロード
UNLOAD_BASE_DATA

# 出力用一時ファイルをクリア
cat /dev/null > ${MATCH_OTF}
cat /dev/null > ${TMP_OTF}

############### -- OM-2019-0000674 DEL START -- ###################
########## テレビ向け、サービス契約機器に対するマッチング ########
##
## 各種アンロード結果をマッチング（サービス契約に紐づく機器で締結済みの機器に対するマッチング）
## サービス契約、機器提供サービス契約、配送、配送対象物品、工事案件、工事案件対象宅内機器、工事完了ワーク、サービス契約内訳
##
#if [ `cat ${KK0081_TRG_TV} | wc -l` -ne 0 -a `cat ${KK0161_TRG} | wc -l` -ne 0 -a `cat ${KK0341_TRG_SVC_KIKI} | wc -l` -ne 0 -a `cat ${DK0021_TRG} | wc -l` -ne 0 -a `cat ${DK0011_TRG} | wc -l` -ne 0 -a `cat ${KU0011_TRG} | wc -l` -ne 0 -a `cat ${KU0141_TRG} | wc -l` -ne 0 -a `cat ${KK1471_TRG} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${MATCH_OTF} ${G_TOOLSH}/util/def/KK_CM_0363.def "${KK0081_TRG_TV} ${KK0341_TRG_SVC_KIKI} ${KK0161_TRG} ${DK0021_TRG} ${DK0011_TRG} ${KU0011_TRG} ${KU0141_TRG} ${KK1471_TRG}"
#fi
#
#
## 機器提供サービス契約の手続中分をマッチング（サービス契約に紐づく機器で手続中の機器に対するマッチング）
## サービス契約、機器提供サービス契約、配送、配送対象物品、工事案件、工事案件対象宅内機器、工事完了ワーク、サービス契約内訳
##
#if [ `cat ${KK0081_TRG_TV} | wc -l` -ne 0  -a `cat ${KK0161_TRG} | wc -l` -ne 0 -a `cat ${KK0341_TTDKCHU_TRG_SVC_KIKI} | wc -l` -ne 0 -a `cat ${DK0021_TRG} | wc -l` -ne 0 -a `cat ${DK0011_TRG} | wc -l` -ne 0 -a `cat ${KU0011_TRG} | wc -l` -ne 0 -a `cat ${KU0141_TRG} | wc -l` -ne 0 -a `cat ${KK1471_TRG} | wc -l` -ne 0 ]
#then
#	EXEC_MATCHING ${TMP_OTF} ${G_TOOLSH}/util/def/KK_CM_0363.def "${KK0081_TRG_TV} ${KK0341_TTDKCHU_TRG_SVC_KIKI} ${KK0161_TRG} ${DK0021_TRG} ${DK0011_TRG} ${KU0011_TRG} ${KU0141_TRG} ${KK1471_TRG}"#
#	
#	# 手続中分データの追加
#	cat ${TMP_OTF} >> ${MATCH_OTF}
#fi
#
######################################################################################
#
## 一時ファイル初期化（以降のマッチング結果は追記とするため）
#cat /dev/null > ${TMP_OTF}
############### -- OM-2019-0000674 DEL END -- ###################

######### ネット・電話向け、サービス契約機器に対するマッチング ########
#
# 各種アンロード結果をマッチング（サービス契約に紐づく機器で締結済みの機器に対するマッチング）
# サービス契約、機器提供サービス契約、配送、配送対象物品、工事案件、工事案件対象宅内機器、工事完了ワーク
#
if [ `cat ${KK0081_TRG_NETTEL} | wc -l` -ne 0 -a `cat ${KK0341_TRG_SVC_KIKI} | wc -l` -ne 0 -a `cat ${DK0021_TRG} | wc -l` -ne 0 -a `cat ${DK0011_TRG} | wc -l` -ne 0 -a `cat ${KU0011_TRG} | wc -l` -ne 0 -a `cat ${KU0141_TRG} | wc -l` -ne 0 -a `cat ${KK1471_TRG} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${TMP_OTF} ${G_TOOLSH}/util/def/KK_CM_0364.def "${KK0081_TRG_NETTEL} ${KK0341_TRG_SVC_KIKI} ${DK0021_TRG} ${DK0011_TRG} ${KU0011_TRG} ${KU0141_TRG} ${KK1471_TRG}"
	
	# ネット・電話向けデータの追加
	cat ${TMP_OTF} >> ${MATCH_OTF}
fi

# 一時ファイル初期化（以降のマッチング結果は追記とするため）
cat /dev/null > ${TMP_OTF}

#
# 機器提供サービス契約の手続中分をマッチング（サービス契約に紐づく機器で手続中の機器に対するマッチング）
# サービス契約、機器提供サービス契約、配送、配送対象物品、工事案件、工事案件対象宅内機器、工事完了ワーク
#
if [ `cat ${KK0081_TRG_NETTEL} | wc -l` -ne 0 -a `cat ${KK0341_TTDKCHU_TRG_SVC_KIKI} | wc -l` -ne 0 -a `cat ${DK0021_TRG} | wc -l` -ne 0 -a `cat ${DK0011_TRG} | wc -l` -ne 0 -a `cat ${KU0011_TRG} | wc -l` -ne 0 -a `cat ${KU0141_TRG} | wc -l` -ne 0 -a `cat ${KK1471_TRG} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${TMP_OTF} ${G_TOOLSH}/util/def/KK_CM_0364.def "${KK0081_TRG_NETTEL} ${KK0341_TTDKCHU_TRG_SVC_KIKI} ${DK0021_TRG} ${DK0011_TRG} ${KU0011_TRG} ${KU0141_TRG} ${KK1471_TRG}"
	
	# 手続中分データの追加
	cat ${TMP_OTF} >> ${MATCH_OTF}
fi

######################################################################################

# 一時ファイル初期化（以降のマッチング結果は追記とするため）
cat /dev/null > ${TMP_OTF}

######### ネット・電話向け、サービス契約回線内訳に紐づく機器で締結済みの機器に対するマッチング ########
#
# 各種アンロード結果をマッチング（サービス契約回線内訳に紐づく機器で締結済みの機器に対するマッチング）
# 機器提供サービス契約、配送、配送対象物品、工事案件、工事案件対象宅内機器、工事完了ワーク
#
if [ `cat ${KK0341_TRG_KAISEN_KIKI} | wc -l` -ne 0 -a `cat ${DK0021_TRG} | wc -l` -ne 0 -a `cat ${DK0011_TRG} | wc -l` -ne 0 -a `cat ${KU0011_TRG} | wc -l` -ne 0 -a `cat ${KU0141_TRG} | wc -l` -ne 0 -a `cat ${KK1471_TRG} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${TMP_OTF} ${G_TOOLSH}/util/def/KK_CM_0365.def "${KK0341_TRG_KAISEN_KIKI} ${DK0021_TRG} ${DK0011_TRG} ${KU0011_TRG} ${KU0141_TRG} ${KK1471_TRG}"
	
	# 回線機器データの追加
	cat ${TMP_OTF} >> ${MATCH_OTF}
fi

# 一時ファイル初期化（以降のマッチング結果は追記とするため）
cat /dev/null > ${TMP_OTF}

#
# 機器提供サービス契約の手続中分をマッチング（サービス契約回線内訳に紐づく機器で手続中の機器に対するマッチング）
# 機器提供サービス契約、配送、配送対象物品、工事案件、工事案件対象宅内機器、工事完了ワーク
#
if [ `cat ${KK0341_TTDKCHU_TRG_KAISEN_KIKI} | wc -l` -ne 0 -a `cat ${DK0021_TRG} | wc -l` -ne 0 -a `cat ${DK0011_TRG} | wc -l` -ne 0 -a `cat ${KU0011_TRG} | wc -l` -ne 0 -a `cat ${KU0141_TRG} | wc -l` -ne 0 -a `cat ${KK1471_TRG} | wc -l` -ne 0 ]
then
	EXEC_MATCHING ${TMP_OTF} ${G_TOOLSH}/util/def/KK_CM_0365.def "${KK0341_TTDKCHU_TRG_KAISEN_KIKI} ${DK0021_TRG} ${DK0011_TRG} ${KU0011_TRG} ${KU0141_TRG} ${KK1471_TRG}"
	
	# 回線機器データの追加
	cat ${TMP_OTF} >> ${MATCH_OTF}
fi

######################################################################################

# 一時ファイルをクリア
cat /dev/null > ${TMP_OTF}

#
# 工事完了ワークがないが、工事完了起因として処理したい場合用のデータ取込 
# 取込用データは、機器提供サービス契約番号（先頭）のみ必須。残りの項目は空で良いですが、項目数分のカンマ（７個）が必須！
# 【定義例（※改行コードはLF）】
# 000000001108,,,,,,,
# 000000001110,,,,,,,
#
# ※取込用ファイルに追加後、データは削除
# 遅延取込用データの追加（ファイルがある場合）
if [ -e ${KKIFM571_ADDFILE} ]
then
	cat ${KKIFM571_ADDFILE} >> ${MATCH_OTF}
	# １世代のみバックアップ後、今回インプット分はクリア
	cat ${KKIFM571_ADDFILE} > ${KKIFM571_ADDFILE_BK}
	cat /dev/null > ${KKIFM571_ADDFILE}
fi

#
# 重複データの削除（機器提供サービス契約番号、機器変更番号が重複した場合は手続中で取得したレコードを優先に使用）
#
bsortex -sort key="0.12asc,1.12asc,8.2asc" -record recform=txtcsv -input reclen=300 < ${MATCH_OTF} \
  | bsortex -merge key="0.12asc,1.12asc" -record recform=txtcsv -input reclen=300 -summary suppress last -output file=${TMP_OTF} reconst="0.12,1.12,2.2,3.10,4.12,5.12,6.10,7.8" 


#
# ダブルクォートを削除
#
cat ${TMP_OTF} | sed -e 's/"//g' > ${MID_DIR_KK}/KKIFM571.csv


#
# 作業ファイルを全て削除
#
REMOVE_WORK_FILE

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

exit ${G_RTN_NORMAL}
