474 lines
15 KiB
PHP
Executable File
474 lines
15 KiB
PHP
Executable File
<?php
|
|
/*********************************************************
|
|
程序说明:
|
|
功能说明:查询话务流量
|
|
|
|
调用关系:调用: header.inc
|
|
被调用:
|
|
|
|
变量说明:
|
|
|
|
返回值:无
|
|
|
|
作者:
|
|
|
|
修改注释:
|
|
NO.1
|
|
姓名:
|
|
时间:
|
|
修改说明:
|
|
*********************************************************/
|
|
require("../../inc/header.inc");
|
|
$db=$bss_db;
|
|
$csta_table = 'OMCR_BtsMeasurements';
|
|
$bts_table = 'OMCR_Bts';
|
|
|
|
if(!isset($bss_id)){
|
|
$bss_id= 0;
|
|
}
|
|
$sqlstring = "select BsPlus,BsPlusMaxExtBtsMgr from OMCR_BssFunc where bssid=$bss_id";
|
|
//echo $sqlstring . "<BR>";
|
|
$result = mysqli_query($pubConn,$sqlstring) or
|
|
die("Invalid query: $sqlstring\n" . mysqli_error($pubConn));
|
|
$row = mysqli_fetch_row($result);
|
|
$isbsplus = $row[0];
|
|
|
|
if($isbsplus == 0)
|
|
$sqlstring = "select ObjectId from OMCR_BSSTREE where ObjectId like 'Bts.%' and ObjectId not like 'Bts.0%' and Presence=1 and bssid=$bss_id";
|
|
else
|
|
$sqlstring = "select ObjectId from OMCR_BSSTREE where ObjectId like 'Bts.%' and Presence=1 and bssid=$bss_id";
|
|
//echo $sqlstring . "<BR>";
|
|
$result = mysqli_query($pubConn,$sqlstring) or
|
|
die("Invalid query: $sqlstring\n" . mysqli_error($pubConn));
|
|
while($row = mysqli_fetch_row($result))
|
|
{
|
|
list($cell_object[]) =$row;
|
|
}
|
|
$no_of_cell = count($cell_object);
|
|
|
|
$btsBgnNo=0;
|
|
$btsEndNo=$no_of_cell;
|
|
|
|
//----------------------get BssId <--> CellIdentity----------------------
|
|
//---init this bsc's bts array---
|
|
for($i=$btsBgnNo; $i <= $btsEndNo; $i++){
|
|
//array(cellid,MO,MT,LU,SS,AttTCH,SuccTCH,RFDorp0;
|
|
$btsArray[$i]=array(0,0,0,0,0,0,0,0,0,0,0,0);
|
|
}
|
|
/*$sel_sql="SELECT ObjectId,CellIdentity FROM OMCR_Bts WHERE CellIdentity >='0' AND bssid='$bss_id'";
|
|
$sel_result=mysqli_query($pubConn,$sel_sql);
|
|
$result_rows=mysqli_fetch_array($sel_result);
|
|
do{
|
|
$temp_bts_id = $result_rows[ObjectId]; //like"Bts.1.0"
|
|
$temp_bts_id = explode('.',$temp_bts_id);
|
|
$temp_bts_id = $temp_bts_id[1];
|
|
$temp_cell_id= $result_rows[CellIdentity];
|
|
if($temp_cell_id > 0){
|
|
$btsArray[$temp_bts_id][0]= $temp_cell_id;
|
|
//echo "<br>btsArray[$temp_bts_id][0]= $temp_cell_id";
|
|
}
|
|
}while($result_rows=mysqli_fetch_array($sel_result));
|
|
*/
|
|
|
|
//-----------get where---------------
|
|
|
|
$where=" bssid='$bss_id' ";
|
|
//data
|
|
if(isset($sel_date)){
|
|
$bgn_date=$sel_date.' '.$hou_1.':'.$mid_1.':'.$sec_1;
|
|
$end_date=$sel_date.' '.$hou_2.':'.$mid_2.':'.$sec_2;
|
|
}else{
|
|
$bgn_date =date("Y-m-d H:i:s",mktime(0,0,0,date("m"),date("d"),date("Y")));
|
|
$end_date =date("Y-m-d H:i:s",mktime());
|
|
}
|
|
$where = $where." AND startTime >=UNIX_TIMESTAMP('$bgn_date') AND EndTime <=UNIX_TIMESTAMP('$end_date')";
|
|
|
|
|
|
//-----inter BSS Handover-------
|
|
$sel_sql="SELECT
|
|
CellIdentity as CellIdentity,
|
|
SUM(HoInterBSCReqToMSC) AS sum_req,
|
|
SUM(HoInterBSCOutAtmpt) AS sum_att,
|
|
SUM(HoInterBSCOut) AS sum_outsucc,
|
|
SUM(HoInterBSCMSFail) AS sum_msfail,
|
|
SUM(HoInterBSCInAtmpt) AS sum_inatt,
|
|
SUM(HoInterBSCIn) AS sum_insucc
|
|
FROM $csta_table
|
|
WHERE $where
|
|
GROUP BY CellIdentity
|
|
";
|
|
$sel_result=mysqli_query($pubConn,$sel_sql);
|
|
//echo "<br>$sel_sql<br> ";
|
|
echo mysqli_error($pubConn);
|
|
while($rows=mysqli_fetch_array($sel_result)){
|
|
for($i=$btsBgnNo; $i <= $btsEndNo; $i++){
|
|
if($btsArray[$i][0] == $rows[CellIdentity]){
|
|
$btsArray[$i][1]=$rows[sum_req];
|
|
$btsArray[$i][2]=$rows[sum_att];
|
|
$btsArray[$i][3]=$rows[sum_outsucc];
|
|
$btsArray[$i][4]=$rows[sum_msfail];
|
|
$btsArray[$i][5]=$rows[sum_inatt];
|
|
$btsArray[$i][6]=$rows[sum_insucc];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
//-----intra BSS Handover-------
|
|
|
|
|
|
|
|
?>
|
|
|
|
<script language="javascript">
|
|
<!--
|
|
function display(ID) {
|
|
which=eval(ID);
|
|
if(which.style.display == "none") {
|
|
which.style.display = "block";
|
|
signRemark.style.display = "block";
|
|
}else {
|
|
which.style.display = "none";
|
|
}
|
|
window.event.cancelBubble = true ;
|
|
}
|
|
|
|
//-->
|
|
</script>
|
|
<body leftmargin=12 topmargin=0>
|
|
<?php
|
|
//------------------------------显示标题,日期--------------------------------------
|
|
?>
|
|
<TABLE border="0" width="100%" cellpadding="2" cellspacing="0" bordercolor="#666666" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">
|
|
<TR>
|
|
<TD>
|
|
<?php
|
|
$bscNum=(strlen($bss_id)<2)?'0'.$bss_id:$bss_id;
|
|
echo "<font color=\"#0000ff\" size=\"2\"><b>BSS"."$bscNum Handover $strStatistics </b></font>";
|
|
?>
|
|
</TD>
|
|
<TD align="right">
|
|
<?php echo "$strDate:$strFrom<font color=\"#0000ff\"> $bgn_date</font> $strTo <font color=\"#0000ff\">$end_date</font>";?>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<?php
|
|
//------------------------------显示列表--------------------------------------
|
|
?>
|
|
<table border="1" width="100%" cellpadding="2" cellspacing="0" bordercolor="#666666" bordercolordark="#FFFFFF" bgcolor="#FFFFFF" >
|
|
<?php
|
|
echo "<TR align=\"center\"><TD colspan=\"2\"> </TD><TD colspan=\"8\"> $strInsterBSC </TD><TD colspan=\"7\"> $strInstraBSC </TD></TR>";
|
|
echo "<TD>BTS ID</TD>";
|
|
echo "<TD>$strCellID</TD>";
|
|
//---inter---
|
|
echo "<TD>OutAtt</TD>";
|
|
echo "<TD>OutReq</TD>";
|
|
echo "<TD>OutSucc</TD>";
|
|
echo "<TD>OutFail</TD>";
|
|
echo "<TD>OutSucc (%)</TD>";
|
|
echo "<TD>InAtt</TD>";
|
|
echo "<TD>InSucc</TD>";
|
|
echo "<TD>InSucc (%)</TD>";
|
|
//---intra---
|
|
echo "<TD>OutAtt</TD>";
|
|
echo "<TD>OutSucc</TD>";
|
|
echo "<TD>OutFail</TD>";
|
|
echo "<TD>OutSucc (%)</TD>";
|
|
echo "<TD>InAtt</TD>";
|
|
echo "<TD>InSucc</TD>";
|
|
echo "<TD>InSucc (%)</TD>";
|
|
echo "</TR>";
|
|
//$bss_id = (strlen($bss_id)<2)?'0'.$bss_id:$bss_id;
|
|
for($i=$btsBgnNo; $i < $btsEndNo; $i++){
|
|
//$bts_num=($i<10)?'0'.$i:$i;
|
|
$cellcont = explode(".",$cell_object[$i]);
|
|
|
|
$sel_sql="SELECT CellIdentity FROM OMCR_Bts WHERE CellIdentity >=0 AND ObjectId like '$cell_object[$i]%' AND bssid=$bss_id";
|
|
|
|
$sel_result=mysqli_query($pubConn,$sel_sql);
|
|
//echo "<br>sel_sql=$sel_sql<br>";
|
|
echo mysqli_error($pubConn);
|
|
$result_row=@mysqli_fetch_row($sel_result);
|
|
$temp_cell_id = $result_row[0];
|
|
|
|
if($temp_cell_id > 0){
|
|
$btsArray[$i][0]= $temp_cell_id;
|
|
//echo "<br>btsArray[$temp_bts_id][0]= $temp_cell_id";
|
|
}
|
|
$sum_sql="SELECT
|
|
CellIdentity as CellIdentity,
|
|
SUM(HoIntraBSCAtmpt) AS sum_att,
|
|
SUM(succOutgoingInternalInterCellHDOs) AS sum_succ,
|
|
SUM(HoIntraBscLostMs) AS sum_drop,
|
|
SUM(HoIntraBSCIn) AS sum_insucc,
|
|
SUM(FailIncomingHDOs) AS sum_infail
|
|
FROM $csta_table
|
|
WHERE $where AND CellIdentity = '$temp_cell_id'
|
|
GROUP BY CellIdentity
|
|
";
|
|
$sel_result=mysqli_query($pubConn,$sum_sql);
|
|
//echo "<br>$sel_sql<br> ";
|
|
echo mysqli_error($pubConn);
|
|
while($rows=mysqli_fetch_array($sel_result)){
|
|
$btsArray[$i][0]=$rows[CellIdentity];
|
|
$btsArray[$i][7]=$rows[sum_att];
|
|
$btsArray[$i][8]=$rows[sum_succ];
|
|
$btsArray[$i][9]=$rows[sum_drop];
|
|
$btsArray[$i][10]=$rows[sum_insucc];
|
|
$btsArray[$i][11]=$rows[sum_infail];
|
|
}
|
|
|
|
if($btsArray[$i][0] > 0){
|
|
echo "<TR>";
|
|
echo "<TD>Bts.$cellcont[1].$cellcont[2]</TD>";
|
|
echo "<TD> {$btsArray[$i][0]}</TD>";
|
|
echo "<TD> {$btsArray[$i][2]}</TD>";
|
|
echo "<TD> {$btsArray[$i][1]}</TD>";
|
|
echo "<TD> {$btsArray[$i][3]}</TD>";
|
|
|
|
$InterOutDrop=($btsArray[$i][2] - $btsArray[$i][3] - $btsArray[$i][4])*100;
|
|
echo "<TD> $InterOutDrop</TD>";
|
|
if($btsArray[$i][2] > 0){
|
|
$SuccRate = ($btsArray[$i][3] / $btsArray[$i][2])* 100;
|
|
$SuccRate = sprintf("%01.2f",$SuccRate);
|
|
echo "<TD> $SuccRate"."%</TD>";
|
|
}else{
|
|
echo "<TD> --</TD>";
|
|
}
|
|
|
|
echo "<TD> {$btsArray[$i][5]}</TD>";
|
|
echo "<TD> {$btsArray[$i][6]}</TD>";
|
|
if($btsArray[$i][5] > 0){
|
|
$SuccRate = ($btsArray[$i][6] / $btsArray[$i][5]) * 100;
|
|
$SuccRate = sprintf("%01.2f",$SuccRate);
|
|
echo "<TD> $SuccRate"."%</TD>";
|
|
}else{
|
|
echo "<TD> --</TD>";
|
|
}
|
|
echo "<TD> {$btsArray[$i][7]}</TD>";
|
|
echo "<TD> {$btsArray[$i][8]}</TD>";
|
|
echo "<TD> {$btsArray[$i][9]}</TD>";
|
|
if($btsArray[$i][7] > 0){
|
|
$SuccRate = ($btsArray[$i][8] / $btsArray[$i][7]) * 100;
|
|
$SuccRate = sprintf("%01.2f",$SuccRate);
|
|
echo "<TD> $SuccRate"."%</TD>";
|
|
}else{
|
|
echo "<TD> --</TD>";
|
|
}
|
|
$IntraInAtt=$btsArray[$i][10]+$btsArray[$i][11];
|
|
echo "<TD> $IntraInAtt</TD>";
|
|
echo "<TD> {$btsArray[$i][10]}</TD>";
|
|
if($IntraInAtt > 0){
|
|
$SuccRate=($btsArray[$i][10] / ($btsArray[$i][10]+$btsArray[$i][11])) * 100;;
|
|
$SuccRate = sprintf("%01.2f",$SuccRate);
|
|
echo "<TD> $SuccRate"."%</TD>";
|
|
}else{
|
|
echo "<TD> --</TD>";
|
|
}
|
|
echo "</TR>";
|
|
}else{
|
|
echo "<TR>";
|
|
echo "<TD>Bts.$cellcont[1].$cellcont[2]</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "<TD> --</TD>";
|
|
echo "</TR>";
|
|
}
|
|
}
|
|
?>
|
|
</table>
|
|
<br><br>
|
|
<?php
|
|
//刻度线图片
|
|
$dot_img="<img border=\"0\" src=\"../../images/Icon-0.gif\" width=\"2\" height=\"1\">";
|
|
|
|
//求图像高度的基数 get the Division by number
|
|
$base_field=7; //$btsArray[bts_num][j]'s j
|
|
for($i=$btsBgnNo; $i <= $btsEndNo; $i++){
|
|
$max_number=($btsArray[$i][$base_field] > $max_number)?$btsArray[$i][$base_field]:$max_number;
|
|
}
|
|
$top_number =(round($max_number/100)+1)*100; //算出最大刻度,该值是个整数
|
|
$base_number=round($top_number/100);
|
|
$base_number=($base_number <= 0)?1:$base_number;
|
|
|
|
//需要显示成柱状图的$btsArray[bts_num][j]元素编号j
|
|
$show_field=array(2,3,5,6,7,8,10,11);
|
|
|
|
//显示图例名称定义,需要和$show_field保持一致
|
|
$legend_def=array('Inter_out Att','Inter_out succ','Inter_in Att','Inter_in succ','Intra_out Att','Intra_out succ','Intra_in Att','Intra_in succ',);
|
|
|
|
//显示图例色彩,需要和$show_field保持一致
|
|
$legend_color=array('blue','green','blue','green','blue','green','blue','green');
|
|
|
|
//------------------------------显示图例--------------------------------------
|
|
?>
|
|
<table border="0">
|
|
<tr>
|
|
<td width="60"><b><?php echo "$strLegend"; ?>:</b></td>
|
|
<?php
|
|
for($i=0;$i<sizeof($legend_def);$i++){
|
|
echo "<td width=\"10\">";
|
|
showImg($legend_color[$i],10,10);
|
|
echo "</td>";
|
|
echo "<td width=\"120\">{$legend_def[$i]}</td>";
|
|
if($i == 3){
|
|
echo "<tr>";
|
|
echo "<td width=\"60\"> </td>";
|
|
}
|
|
}
|
|
?>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
<script language="JavaScript1.2" type="text/javascript">
|
|
<!--
|
|
function chgBaseNum(max_first_num){
|
|
|
|
var old_base_number=1.00 * oldBaseNumSet.value;
|
|
var max_second_num = <?php echo sizeof($show_field);?>;
|
|
var new_base_number=1.00 * baseNumSet.value;
|
|
var i=0,j=0,k=0,maxHeight=200,maxNum=0;
|
|
if(new_base_number <=0){
|
|
baseNumSet.value=old_base_number;
|
|
return(-1);
|
|
}
|
|
for(i=0;i < max_first_num;i++){
|
|
for(k=0;k<3;k++){
|
|
for(j=0;j < max_second_num;j++){
|
|
temp_obj_name='img'+i+'_'+k+'_'+j;
|
|
temp_input_name='img'+i+'_'+k+'_'+j+'_org';
|
|
temp_obj=eval(temp_obj_name);
|
|
temp_height=eval(temp_input_name);
|
|
if(temp_obj.height > 0 && new_base_number > 0){
|
|
temp_obj.height = 1.0 * temp_height.value * (old_base_number / new_base_number )+1;
|
|
if(temp_obj.height > maxHeight && temp_obj.alt > maxNum){
|
|
//alert(temp_obj.height+'-'+temp_obj.alt);
|
|
maxNum = temp_obj.alt;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
for(i=0;i<4;i++){
|
|
tmpobj=eval('topNumber_'+i);
|
|
org_tmpobj=eval('org_topNumber_'+i);
|
|
if(maxNum > 0){
|
|
tmpobj.value = maxNum;
|
|
baseNumSet.value = maxNum;
|
|
}else{
|
|
tmpobj.value = Math.round(org_tmpobj.value * (new_base_number/ old_base_number));
|
|
}
|
|
}*/
|
|
}
|
|
-->
|
|
</script>
|
|
<?php
|
|
//echo "$strHandover:<input type=\"text\" size=\"4\" name=\"baseNumSet\" id=\"baseNumSet\" value=\"$top_number\" class=\"text\">";
|
|
//echo " <input type=\"button\" value=\"$strAdjustHeight\" name=\"chge\" onclick=\"chgBaseNum()\" class=\"button\"> ";
|
|
//echo "<input type=\"hidden\" size=\"4\" name=\"oldBaseNumSet\" id=\"oldBaseNumSet\" value=\"$top_number\">";
|
|
//echo "<br>";
|
|
//------------------------------显示柱状图----------------------------------
|
|
|
|
$bts_num=$btsBgnNo;
|
|
$bts_num=$btsBgnNo;
|
|
if($isbsplus == 0){
|
|
$sqlstring = "select ObjectId from OMCR_BSSTREE where ObjectId like 'BtsMgr.%' and ObjectId not like 'BtsMgr.0%' and Presence=1 and bssid=$bss_id";
|
|
}else if($isbsplus == 1){
|
|
$sqlstring = "select ObjectId from OMCR_BSSTREE where ObjectId like 'BtsMgr.%' and Presence=1 and bssid=$bss_id";
|
|
}
|
|
$result = mysqli_query($pubConn,$sqlstring) or
|
|
die("Invalid query: $sqlstring\n" . mysqli_error($pubConn));
|
|
while($row = mysqli_fetch_row($result))
|
|
{
|
|
list($btsmgr_list[]) =$row;
|
|
}
|
|
$no_of_btsmgr = count($btsmgr_list);
|
|
echo "$strHandover:<input type=\"text\" size=\"4\" name=\"baseNumSet\" id=\"baseNumSet\" value=\"$top_number\" class=\"text\">";
|
|
|
|
echo " <input type=\"button\" value=\"$strAdjustHeight\" name=\"chge\" onclick=\"chgBaseNum($no_of_btsmgr)\" class=\"button\"> ";
|
|
echo "<input type=\"hidden\" size=\"4\" name=\"oldBaseNumSet\" id=\"oldBaseNumSet\" value=\"$top_number\">";
|
|
echo "<br>";
|
|
for($i=0;$i<$no_of_btsmgr;$i++){
|
|
?>
|
|
<br>
|
|
<table border="0" cellPadding="0" cellSpacing="0" height="220" style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; BORDER-RIGHT: medium none; BORDER-TOP: medium none" >
|
|
<tr>
|
|
<td colspan="100" height="20">
|
|
<b>
|
|
<?php
|
|
$btsmgrcont = explode(".",$btsmgr_list[$i]);//e.g BtsMgr.1
|
|
/*$num = $bts_num;
|
|
$num =(strlen($num)<2)?'0'.$num:$num;
|
|
$BTS_ID_1='BTS'."$bss_id"."_$num";
|
|
$num++;
|
|
$num =(strlen($num)<2)?'0'.$num:$num;
|
|
$BTS_ID_2='BTS'."$bss_id"."_$num";
|
|
$num++;
|
|
$num =(strlen($num)<2)?'0'.$num:$num;
|
|
$BTS_ID_3='BTS'."$bss_id"."_$num";
|
|
*/
|
|
echo"$dot_img ";
|
|
echo "<INPUT type=\"text\" size=\"10\" name=\"topNumber_".$i."\" id=\"topNumber\" value=\"$top_number\" style=\"border-left:medium none;border-right:medium none;border-top:medium none;border-bottom:medium none; solid rgb(0,0,0)\" readonly>";
|
|
echo "<INPUT type=\"hidden\" size=\"10\" name=\"org_topNumber_".$i."\" id=\"topNumber\" value=\"$top_number\" >";
|
|
echo "<b>$btsmgr_list[$i]:TCH($strHOExplain) $strStatistics</b>";
|
|
?>
|
|
</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="bottom" height="40" width="20"><?php echo"$dot_img";?></td>
|
|
<?php
|
|
for($j=0;$j<3;$j++){
|
|
//显示每个bts的柱状图
|
|
for($k=0;$k<sizeof($show_field);$k++){
|
|
$arrNum = $show_field[$k];
|
|
$alt = $legend_def[$k].'='.$btsArray[$bts_num][$arrNum];
|
|
$height = $btsArray[$bts_num][$arrNum] / $base_number * 2;
|
|
$width = 19;
|
|
$imgName = 'img'.$i.'_'.$j.'_'.$k;
|
|
echo "<td valign=\"bottom\" height=\"200\" width=\"20\" rowspan=\"5\">";
|
|
showImg($legend_color[$k],$width,$height,$imgName,$alt);
|
|
echo "</td>";
|
|
}
|
|
echo "<td valign=\"bottom\" height=\"200\" width=\"40\" rowspan=\"5\"></td>";
|
|
$bts_num++;
|
|
}
|
|
?>
|
|
<td valign="bottom" height="200" width="100" rowspan="5"></td>
|
|
</tr>
|
|
<tr><td valign="bottom" height="40" width="20"><?php echo"$dot_img";?></td></tr>
|
|
<tr><td valign="bottom" height="40" width="20"><?php echo"$dot_img";?></td></tr>
|
|
<tr><td valign="bottom" height="40" width="20"><?php echo"$dot_img";?></td></tr>
|
|
<tr><td valign="bottom" height="40" width="20"></td></tr>
|
|
</table>
|
|
<table border="0">
|
|
<tr>
|
|
<td valign="bottom" width="20"> </td>
|
|
<?php
|
|
$tdWidth=20*sizeof($show_field)+40;
|
|
echo "<td width=\"$tdWidth\">Bts.$btsmgrcont[1].0</td>";
|
|
echo "<td width=\"$tdWidth\">Bts.$btsmgrcont[1].0</td>";
|
|
echo "<td width=\"$tdWidth\">Bts.$btsmgrcont[1].0</td>";
|
|
?>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
?>
|
|
</body>
|
|
</html>
|