Просмотр исходного кода

fix(dashboard): 工作台「新的报价」仅统计当日新提交

- 仪表盘汇总:submitted 报价按 coalesce(submit_time, create_at) 限定当日
- 控制台无数据提示与快照标题对齐口径

Made-with: Cursor
zlwu 6 месяцев назад
Родитель
Сommit
712ad03eea
2 измененных файлов с 13 добавлено и 4 удалено
  1. 12 3
      backend/app/crud/statistics.py
  2. 1 1
      web-admin/src/views/dashboard/console/index.vue

+ 12 - 3
backend/app/crud/statistics.py

@@ -517,6 +517,7 @@ class StatisticsCRUD:
     ) -> Dict[str, Any]:
         """获取仪表盘汇总数据(运营工作台;含待办摘要、最新订单、预警数等,字段驼峰)"""
         today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
+        tomorrow_start = today + timedelta(days=1)
         month_start = today.replace(day=1)
         yesterday_start = today - timedelta(days=1)
         region_clause = StatisticsCRUD._dashboard_order_region_clause(region_id)
@@ -579,9 +580,15 @@ class StatisticsCRUD:
             )
         delivery_warning_count = warn_q.count()
 
-        # 待处理报价:已提交、待运营侧处理的报价单
+        # 今日新提交报价:状态为已提交,且提交时间(无则用创建时间)落在当日 0 点~次日 0 点
+        quot_submitted_at = func.coalesce(BizQuotation.submit_time, BizQuotation.create_at)
         sub_quot_q = db.query(BizQuotation).filter(
-            and_(BizQuotation.is_del == 0, BizQuotation.status == "submitted")
+            and_(
+                BizQuotation.is_del == 0,
+                BizQuotation.status == "submitted",
+                quot_submitted_at >= today,
+                quot_submitted_at < tomorrow_start,
+            )
         )
         if region_id:
             sub_quot_q = sub_quot_q.filter(BizQuotation.region_id == region_id)
@@ -593,6 +600,8 @@ class StatisticsCRUD:
             .filter(
                 BizQuotation.is_del == 0,
                 BizQuotation.status == "submitted",
+                quot_submitted_at >= today,
+                quot_submitted_at < tomorrow_start,
                 BizInquiry.is_del == 0,
                 *([BizQuotation.region_id == region_id] if region_id else []),
             )
@@ -731,7 +740,7 @@ class StatisticsCRUD:
         todo_snapshots = [
             {
                 "type": "quotation",
-                "title": "待处理报价",
+                "title": "今日新提交报价",
                 "count": pending_quotation_count,
                 "items": quotation_lines,
             },

+ 1 - 1
web-admin/src/views/dashboard/console/index.vue

@@ -296,7 +296,7 @@
         ? ['加载中…']
         : quotSnap?.items?.length
           ? quotSnap.items.slice(0, 2)
-          : ['暂无新报价待处理']
+          : ['暂无今日新提交的报价']
 
     return [
       {