query($query); if ($result && $row = $result->fetch_assoc()) { $current_permission_role = $row['em_permission_role_id']; } // 获取日期范围参数 $date_params = getDateRangeParams(); $current_start_date = $date_params['start_date_sql']; $current_end_date = $date_params['end_date_sql']; $date_range = $date_params['date_range']; // 获取选中的业务员ID $selected_employee = isset($_GET['employee_id']) ? intval($_GET['employee_id']) : 0; // 确定要显示哪些业务员的数据 $employee_filter = null; if ($selected_employee > 0) { // 如果选择了特定业务员,检查当前用户是否有权限查看该业务员的数据 $has_permission = false; if ($current_permission_role == 1) { // 管理员可以查看所有业务员 $has_permission = true; } else if ($current_permission_role == 2) { // 组长可以查看自己和组员 $query = "SELECT id FROM employee WHERE id = $selected_employee AND (id = $current_user_id OR em_role = $current_user_id)"; $result = $conn->query($query); $has_permission = ($result && $result->num_rows > 0); } else { // 普通业务员只能查看自己 $has_permission = ($selected_employee == $current_user_id); } if ($has_permission) { $employee_filter = $selected_employee; } else { // 如果没有权限,重置为查看自己的数据 $selected_employee = $current_user_id; $employee_filter = $current_user_id; } } else { // 如果没有选择特定业务员,则按权限显示相应的业务员数据 if ($current_permission_role == 1) { // 管理员可以看到所有业务员 $employee_filter = null; } else if ($current_permission_role == 2) { // 组长可以看到自己和组员 $visible_employees = []; $query = "SELECT id FROM employee WHERE id = $current_user_id OR em_role = $current_user_id"; $result = $conn->query($query); if ($result) { while ($row = $result->fetch_assoc()) { $visible_employees[] = intval($row['id']); } } if (!empty($visible_employees)) { $employee_filter = $visible_employees; } else { $employee_filter = $current_user_id; } } else { // 普通业务员只能看到自己 $employee_filter = $current_user_id; } } // 获取业务员列表(基于权限) $sql_employees = ""; if ($current_permission_role == 1) { // 管理员可以看到所有业务员 $sql_employees = "SELECT id, em_user FROM employee WHERE em_role IS NOT NULL ORDER BY em_user"; } else if ($current_permission_role == 2) { // 组长可以看到自己和组员 $sql_employees = "SELECT id, em_user FROM employee WHERE id = $current_user_id OR em_role = $current_user_id ORDER BY em_user"; } else { // 普通业务员只能看到自己 $sql_employees = "SELECT id, em_user FROM employee WHERE id = $current_user_id"; } $employees_result = $conn->query($sql_employees); // 计算上一个时间段范围(用于比较) $previous_start_date = ''; $previous_end_date = ''; // 根据当前选择的日期范围,计算上一个对比时段 if ($date_range == 'current_month') { // 上个月 $previous_start_date = date('Y-m-01', strtotime('-1 month', strtotime($current_start_date))); $previous_end_date = date('Y-m-t', strtotime('-1 month', strtotime($current_end_date))); } elseif ($date_range == 'last_month') { // 上上个月 $previous_start_date = date('Y-m-01', strtotime('-2 month', strtotime($current_start_date))); $previous_end_date = date('Y-m-t', strtotime('-2 month', strtotime($current_end_date))); } elseif ($date_range == 'current_year') { // 去年同期 $previous_start_date = date('Y-01-01', strtotime('-1 year', strtotime($current_start_date))); $previous_end_date = date('Y-12-31', strtotime('-1 year', strtotime($current_end_date))); } elseif ($date_range == 'last_30_days' || $date_range == 'last_90_days' || $date_range == 'custom') { // 上一个同长度周期 $date_diff = (strtotime($current_end_date) - strtotime($current_start_date)) / (60 * 60 * 24); $previous_end_date = date('Y-m-d', strtotime('-1 day', strtotime($current_start_date))); $previous_start_date = date('Y-m-d', strtotime("-{$date_diff} day", strtotime($previous_end_date))); } // 阈值设置(可以移到数据库或配置文件中) $order_amount_decrease_threshold = -15; // 订单金额下降超过15%触发预警 $repurchase_cycle_threshold = 90; // 复购周期超过90天触发预警(3个月内未录入订单) $inactive_threshold = 90; // 90天未有客户信息修改视为不活跃客户(3个月) $churn_threshold = 365; // 365天未下单视为流失客户(1年) $normal_repurchase_days = 30; // 正常复购周期参考值(天) // 页面头部 include('statistics_header.php'); ?>
监控订单异常情况,提前预警潜在问题
0) { $employee_name = ""; $emp_query = "SELECT em_user FROM employee WHERE id = $selected_employee"; $emp_result = $conn->query($emp_query); if ($emp_result && $emp_row = $emp_result->fetch_assoc()) { $employee_name = $emp_row['em_user']; $role_info = "您正在查看业务员 {$employee_name} 的数据"; } } else { $role_info = "您正在查看所有业务员的数据"; } } else if ($current_permission_role == 2) { // 组长 if ($selected_employee > 0 && $selected_employee != $current_user_id) { $employee_name = ""; $emp_query = "SELECT em_user FROM employee WHERE id = $selected_employee"; $emp_result = $conn->query($emp_query); if ($emp_result && $emp_row = $emp_result->fetch_assoc()) { $employee_name = $emp_row['em_user']; $role_info = "您正在查看业务员 {$employee_name} 的数据"; } } else if ($selected_employee == 0 || $selected_employee == $current_user_id) { $role_info = "您正在查看您的团队数据"; } } else { // 普通业务员 $role_info = "您正在查看自己的数据"; } ?>与上一周期相比,订单金额显著下降的客户
客户名称 | 本期订单金额 | 上期订单金额 | 变化百分比 | 最近出货日期 | 业务员 | 操作 |
---|---|---|---|---|---|---|
" . htmlspecialcharsFix($customer['cs_company']) . " | "; echo "¥" . number_format($customer['current_amount'], 2) . " | "; echo "¥" . number_format($customer['previous_amount'], 2) . " | "; echo "" . $change_percent . "% | "; echo "" . $customer['last_order_date'] . " | "; echo "" . htmlspecialcharsFix($customer['em_user']) . " | "; echo "查看 | "; echo "
没有发现订单金额下降的客户 |
3个月内未录入订单的客户
客户编码 | 客户名称 | 上次订单日期 | 未订单天数 | 历史订单总数 | 历史订单总额 | 业务员 | 操作 |
---|---|---|---|---|---|---|---|
" . htmlspecialcharsFix($customer['cs_code']) . " | "; echo "" . htmlspecialcharsFix($customer['cs_company'] ?: '未填写') . " | "; echo "" . ($customer['last_order_date'] ? $customer['last_order_date'] : '从未下单') . " | "; echo "" . $inactive_days . " | "; echo "" . $customer['order_count'] . " | "; echo "¥" . number_format($customer['total_amount'], 2) . " | "; echo "" . htmlspecialcharsFix($customer['em_user']) . " | "; echo "查看 | "; echo "
没有发现复购周期异常的客户 |
1年内未录入订单的客户
客户编码 | 客户名称 | 最后出货日期 | 未订单天数 | 历史订单数 | 历史订单总额 | 业务员 | 操作 |
---|---|---|---|---|---|---|---|
" . htmlspecialcharsFix($customer['cs_code']) . " | "; echo "" . htmlspecialcharsFix($customer['cs_company'] ?: '未填写') . " | "; echo "" . ($customer['last_order_date'] ? $customer['last_order_date'] : '从未下单') . " | "; echo "" . $inactive_days . " | "; echo "" . $customer['order_count'] . " | "; echo "¥" . number_format($customer['total_amount'], 2) . " | "; echo "" . htmlspecialcharsFix($customer['em_user']) . " | "; echo "查看 | "; echo "
没有发现流失客户 |
最近12个月的订单数量和金额趋势