add export ussd alarm smpp

This commit is contained in:
root
2025-07-30 17:30:36 +08:00
parent 54339f4273
commit b24a4bfe72
8 changed files with 458 additions and 73 deletions

View File

@@ -13,8 +13,9 @@ $objDbConn=mysqli_connect($OMC_server[0]['host'],$OMC_server[0]['user'],$OMC_ser
$query_year=$_REQUEST['query_year'];
$query_month=$_REQUEST['query_month'];
$query_day=$_REQUEST['query_day'];
$bgnDay=$_REQUEST['bgnDay'];
$endDay=$_REQUEST['endDay'];
$flag=$_REQUEST['flag'];
if(!$query_year){
$query_year=date("Y",mktime(0,0,0,date("m"),date("d")-1,date("Y")));
$query_month=date("m",mktime(0,0,0,date("m"),date("d")-1,date("Y")));
@@ -25,8 +26,9 @@ $selectedDate=$_REQUEST['selectedDate']?$_REQUEST['selectedDate']:$defaultDate;
switch($sysTypeNo){
case '360':
$title = ['Index','USSD Code','Session Num','Session Duration','Error Timeout','Error System','Error Message','Average Duration','TPS']; // 获取字段名
$sumSql="SELECT
$sumSql="SELECT
ussd_code_1,
session_num_1,
session_duration_1,
@@ -77,9 +79,94 @@ $selectedDate=$_REQUEST['selectedDate']?$_REQUEST['selectedDate']:$defaultDate;
error_message_8
FROM
PPS_DB.daily_report
WHERE date = '$selectedDate' ";
//echo "sumSql=$sumSql";
$res=mysqli_query($pssDbConn,$sumSql);
WHERE ";
if($flag=='month'){
$result = $sumSql." date >='$bgnDay' and date<= '$endDay' order by date ASC";
//echo "sumSql=$sumSql";
$res=mysqli_query($pssDbConn,$result);
//echo mysqli_error($pssDbConn);
$num=mysqli_num_rows($res);
$allUssdCodes = []; // 用于存储所有记录的 ussd_code
do{
if(!count($allUssdCodes)){ // 代表是第一条记录
// 初始化数组
for ($i = 1; $i <= 8; $i++) {
$allUssdCodes[$i] = $selRow['ussd_code_' . $i];
$thisMonthTotalSessionNum[$i] = $selRow['session_num_' . $i];
$thisMonthTotalSessionDuration[$i] = $selRow['session_duration_'. $i];
$thisMonthTotalErrorTimeout[$i] = $selRow['error_timeout_'. $i];
$thisMonthTotalErrorSystem[$i] = $selRow['error_system_'. $i];
$thisMonthTotalErrorMessage[$i] = $selRow['error_message_'. $i];
}
} else { // 剩余记录
// 创建USSD索引的映射
$codeToIndexMap = array_flip(array_filter($allUssdCodes));
for ($j = 1; $j <= 8; $j++) {
$currentCode = $selRow['ussd_code_' . $j];
if (!$currentCode) continue; // 跳过空代码
echo "currentCode===$currentCode";
if (isset($codeToIndexMap[$currentCode])) {
// 已存在的代码,累加统计数据
$index = $codeToIndexMap[$currentCode];
$thisMonthTotalSessionNum[$index] += $selRow['session_num_' . $j];
$thisMonthTotalSessionDuration[$index] += $selRow['session_duration_'. $j];
$thisMonthTotalErrorTimeout[$index] += $selRow['error_timeout_'. $j];
$thisMonthTotalErrorSystem[$index] += $selRow['error_system_'. $j];
$thisMonthTotalErrorMessage[$index] += $selRow['error_message_'. $j];
} else {
//找一个空位存放
foreach ($allUssdCodes as $key => $value) {
if (!$value) {
$allUssdCodes[$key] = $currentCode;
$codeToIndexMap[$currentCode] = $key;
$thisMonthTotalSessionNum[$key] = $selRow['session_num_' . $j];
$thisMonthTotalSessionDuration[$key] = $selRow['session_duration_'. $j];
$thisMonthTotalErrorTimeout[$key] = $selRow['error_timeout_'. $j];
$thisMonthTotalErrorSystem[$key] = $selRow['error_system_'. $j];
$thisMonthTotalErrorMessage[$key] = $selRow['error_message_'. $j];
break;
}
}
}
}
}
}while($selRow=mysqli_fetch_array($res));
$file_name = 'PPS-USSD-Month.csv';
$file = fopen($file_name, 'w');
fputcsv($file, $title); // 写入标题行
for ($i = 1; $i <= 8; $i++) {
$average=$thisMonthTotalSessionNum[$i]?$thisMonthTotalSessionDuration[$i]/$thisMonthTotalSessionNum[$i]:0;
$tps=$thisMonthTotalSessionNum[$i]/(3600*24);
fputcsv($file, [$i,$allUssdCodes[$i],$thisMonthTotalSessionNum[$i], $thisMonthTotalSessionDuration[$i],$thisMonthTotalErrorTimeout[$i], $thisMonthTotalErrorSystem[$i] ,$thisMonthTotalErrorMessage[$i],$average,$tps]);
}
fclose($file);
// 检查文件是否存在
if (file_exists($file_name)) {
header("Content-type: application/csv");
//use for download csv in https
header('Expires: 0');
header('Pragma: public');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: public');
header("Content-Disposition: attachment; filename=$file_name");
readfile($file_name);
unlink($file_name);
} else {
// 文件不存在时的处理
echo "Error: File does not exist.";
}
}
else{
$result= $sumSql." date = '$selectedDate'";
//echo "sumSql=$sumSql";
$res=mysqli_query($pssDbConn,$result);
echo mysqli_error($pssDbConn);
$num=mysqli_num_rows($res);
@@ -89,12 +176,11 @@ $selectedDate=$_REQUEST['selectedDate']?$_REQUEST['selectedDate']:$defaultDate;
$row = mysqli_fetch_array($res, MYSQLI_ASSOC);
// 处理标题
$title = ['Index','USSD Code','Session Num','Session Duration','Error Timeout','Error System','Error Message','Average Duration','TPS']; // 获取字段名
$file_name = 'PPS-USSD.csv';
$file = fopen($file_name, 'w');
fputcsv($file, $title); // 写入标题行
for ($i = 1; $i <= 8; $i++) {
for ($i = 1; $i <= 8; $i++) {
$average=$row['session_num_' . $i]?$row['session_duration_' . $i]/$row['session_num_' . $i]:0;
$tps=$row['session_num_' . $i]/(3600*24);
fputcsv($file, [$i,$row['ussd_code_' . $i],$row['session_num_' . $i],$row['session_duration_' . $i],$row['error_timeout_' . $i],$row['error_system_' . $i],$row['error_message_' . $i],$average,$tps]);
@@ -111,11 +197,15 @@ $selectedDate=$_REQUEST['selectedDate']?$_REQUEST['selectedDate']:$defaultDate;
header('Cache-Control: public');
header("Content-Disposition: attachment; filename=$file_name");
readfile($file_name);
unlink($file_name);
} else {
// 文件不存在时的处理
echo "Error: File does not exist.";
}
}
}
break;
default:
break;

View File

@@ -501,7 +501,13 @@ for($i=1;$i<=12;$i++){
<?php echo "$strMonth PPS report ($bgnDay ~ $endDay)";?>
</b>
</td>
<td width="20%" align="right">
<td width="5%" align="right">
<a href="./downCSTA.php?sysTypeNo=360&flag=month&bgnDay=<?php echo "$bgnDay";?>&endDay=<?php echo "$endDay";?> ">
<img align=absBottom border=0 src="../../images/list.gif" width="16" height="16"><?php echo "&nbsp;Export";?>
</a>
<td width="5%" align="right">
<div onClick="window.print();" style="cursor:hand">
<img align=absBottom border=0 src="../../images/printer.gif" width="16" height="16"><?php echo "&nbsp;$strDailyBtnPrint";?>
</div>