根据条件创建话单,如果少量的还可以手工执行,如果是数量级很大的话,手工造话单不太现实,只能通过脚本批量创建。这里分两部分一部是shell脚本,一部分是sql脚本。
生成话单的脚本:
#!/bin/bash
#set -x
DBSERVER=testdb01
USER=smart
PASS=smart
WORK_DIR=/lee
FILEPRE=lee_`date +'%m%d'`_
FILESUF=".dat"
DATETIME=`date +'%Y%m%d%H%M%S'`
MSG=""
CALLING_PARTY_ADDR="13060010001"
CALLED_PARTY_ADDR="13060010001"
CHARGE_FLOW_TYPE=0
CALLING_VLR_NUM=055187008
CALLING_CELLID=28069
CALLED_VLR_NUM=055187777
CALLED_CELLID=28002
MSC_ADDR=055187008
CALLDURATION=0
FILEID=1
FILENAME=${FILEPRE}${FILEID}${FILESUF}
FILESIZE=100000
BILLID=$FILESIZE
echo `date +'%Y-%m-%d %H:%M:%S'`;
sqlplus -s $USER/$PASS@$DBSERVER @$WORK_DIR/exp.sql;
rm *$FILESUF
for MSISDN in `cat ./export.txt`
do
if [ $BILLID -eq $FILESIZE ]
then
BILLID=0;
FILENAME=${FILEPRE}$((RANDOM%(1000-100)+100))_${FILEID}${FILESUF};
FILEID=$((FILEID+1));
fi
BILLID=$((BILLID+1));
CALLING_PARTY_ADDR=$MSISDN;
CALLDURATION=$((RANDOM%1000))
#668||8613398827625|6235715|||20100830144551|0|6235715||0||055187008|28069|||6235715|8613398827625|||||0|||055187008||20100830144551|181|0|||
MSG="668||"$CALLING_PARTY_ADDR"|"$CALLED_PARTY_ADDR"|||"$DATETIME"|0|"$CALLED_PARTY_ADDR"||0||"$CALLING_VLR_NUM"|"$CALLING_CELLID"|"$CALLED_VLR_NUM"|"$CALLED_CELLID
MSG=$MSG"|"$CALLING_PARTY_ADDR"|"$CALLED_PARTY_ADDR"|||||0|||"$MSC_ADDR"||"$DATETIME"|"$CALLDURATION"|0|||"
echo $MSG>>$FILENAME
CALLED_PARTY_ADDR=$CALLING_PARTY_ADDR;
done
echo `date +'%Y-%m-%d %H:%M:%S'`