Selaa lähdekoodia

fix(s8): align delivery monitoring types and trend

YY968XX 4 päivää sitten
vanhempi
commit
249adfa2ed

+ 4 - 20
Web/src/views/aidop/s8/api/s8DeliveryMonitoringApi.ts

@@ -15,34 +15,18 @@ export interface DeliveryMonitoringData {
 	anomalyTypes: DeliveryAnomalyType[];
 }
 
+// S8-DELIVERY-PAGE-TYPE-PRUNE-AND-TREND-ALIGN-1:Delivery 页类型卡收敛为 2 类;
+// 显示名「总装发货延期」仅 delivery 大屏展示,不改 ado_s8_exception_type.type_name。
 const DELIVERY_ANOMALY_SPECS = [
-	{
-		key: 'order-change',
-		label: '订单变更',
-		totalCellCode: 'DELIVERY_ANOMALY_ORDER_CHANGE',
-		analysisCellCode: 'DELIVERY_CAT_ORDER_CHANGE',
-	},
-	{
-		key: 'delivery-delay',
-		label: '交期延迟',
-		totalCellCode: 'DELIVERY_ANOMALY_DELIVERY_DELAY',
-		analysisCellCode: 'DELIVERY_CAT_DELIVERY_DELAY',
-	},
-	{
-		key: 'stock-pending',
-		label: '入库待发',
-		totalCellCode: 'DELIVERY_ANOMALY_STOCK_PENDING',
-		analysisCellCode: 'DELIVERY_CAT_STOCK_PENDING',
-	},
 	{
 		key: 'order-due-date-delay',
-		label: '订单交期延',
+		label: '订单交期延期',
 		totalCellCode: 'DELIVERY_ANOMALY_ORDER_DUE_DATE_DELAY',
 		analysisCellCode: 'DELIVERY_CAT_ORDER_DUE_DATE_DELAY',
 	},
 	{
 		key: 'delivery-delay-warning',
-		label: '总装发货延期预警',
+		label: '总装发货延期',
 		totalCellCode: 'DELIVERY_ANOMALY_DELIVERY_DELAY_WARNING',
 		analysisCellCode: 'DELIVERY_CAT_DELIVERY_DELAY_WARNING',
 	},

+ 3 - 4
Web/src/views/aidop/s8/api/s8MonitoringApi.ts

@@ -81,13 +81,12 @@ export interface S8OrderGridData {
 	byDept: S8DeptSummary[];
 }
 
-// S8-DELIVERY-TREND-CHART-REPLACE-DUPLICATE-SECTION-1
+// S8-DELIVERY-PAGE-TYPE-PRUNE-AND-TREND-ALIGN-1:trend day 收敛为 2 类
 export interface S8DeliveryTrendDay {
 	date: string;
 	rawDate: string;
-	orderChange: number;
-	deliveryDelay: number;
-	pendingShipment: number;
+	orderDueDateDelay: number;
+	deliveryDelayWarning: number;
 	total: number;
 }
 

+ 3 - 3
Web/src/views/aidop/s8/monitoring/S8MonitoringDeliveryPage.vue

@@ -210,10 +210,10 @@ const STAGE_META_FALLBACK = [
 	{ code: 'S7', title: '订单交付', icon: Van as Component,     metricLabel: '异常发生情况' },
 ] as const;
 
+// S8-DELIVERY-PAGE-TYPE-PRUNE-AND-TREND-ALIGN-1:fallback 与后端 specs 对齐为 2 类。
 const ANOMALY_TYPES_FALLBACK: ReadonlyArray<{ key: string; label: string }> = [
-	{ key: 'order-change',   label: '订单变更' },
-	{ key: 'delivery-delay', label: '交期延迟' },
-	{ key: 'stock-pending',  label: '入库待发' },
+	{ key: 'order-due-date-delay',   label: '订单交期延期' },
+	{ key: 'delivery-delay-warning', label: '总装发货延期' },
 ];
 
 // S8-DELIVERY-TREND-CHART-REPLACE-DUPLICATE-SECTION-1:原 CATEGORY_DEFS_FALLBACK 仅服务 analysis 区块,

+ 8 - 9
Web/src/views/aidop/s8/monitoring/components/S8DeliveryTrendChart.vue

@@ -63,10 +63,10 @@ const avgText = computed(() => {
 });
 const todayText = computed(() => String(summary.value?.todayValue ?? 0));
 
+// S8-DELIVERY-PAGE-TYPE-PRUNE-AND-TREND-ALIGN-1:series 收敛为 2 类。
 const SERIES_META = [
-	{ key: 'orderChange', name: '订单变更', color: '#7bd0ff' },
-	{ key: 'deliveryDelay', name: '交期延迟', color: '#ffc107' },
-	{ key: 'pendingShipment', name: '入库待发', color: '#ff9d6c' },
+	{ key: 'orderDueDateDelay', name: '订单交期延期', color: '#7bd0ff' },
+	{ key: 'deliveryDelayWarning', name: '总装发货延期', color: '#ffc107' },
 ] as const;
 
 const chartOption = computed(() => {
@@ -99,13 +99,12 @@ const chartOption = computed(() => {
 				const idx = params[0].dataIndex;
 				const day = list[idx];
 				if (!day) return '';
-				const oc = day.orderChange;
-				const dd = day.deliveryDelay;
-				const ps = day.pendingShipment;
+				const lines = SERIES_META.map((m) => {
+					const v = (day as any)[m.key] ?? 0;
+					return `<div>· ${m.name}:${v}</div>`;
+				}).join('');
 				return `<div style="font-weight:600;margin-bottom:4px;">${day.rawDate}</div>`
-					+ `<div>· 订单变更:${oc}</div>`
-					+ `<div>· 交期延迟:${dd}</div>`
-					+ `<div>· 入库待发:${ps}</div>`
+					+ lines
 					+ `<div style="margin-top:4px;color:#7bd0ff;">合计:${day.total}</div>`;
 			},
 		},

+ 3 - 3
server/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj

@@ -11,9 +11,9 @@
     <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
     <Copyright>Admin.NET</Copyright>
     <Description>Admin.NET 通用权限开发平台</Description>
-    <AssemblyVersion>1.0.113</AssemblyVersion>
-    <FileVersion>1.0.113</FileVersion>
-    <Version>1.0.113</Version>
+    <AssemblyVersion>1.0.114</AssemblyVersion>
+    <FileVersion>1.0.114</FileVersion>
+    <Version>1.0.114</Version>
   </PropertyGroup>
 
   <ItemGroup>

+ 2 - 2
server/Plugins/Admin.NET.Plugin.AiDOP/Controllers/S8/AdoS8MonitoringController.cs

@@ -31,8 +31,8 @@ public class AdoS8MonitoringController : ControllerBase
         => Ok(await _svc.GetOrderGridAsync(period: period));
 
     /// <summary>
-    /// S8-DELIVERY-TREND-CHART-REPLACE-DUPLICATE-SECTION-1:Delivery 页近 N 日交付异常趋势。
-    /// 口径 module_code IN (S1,S7) AND exception_type_code IN (ORDER_CHANGE / DELIVERY_DELAY / PENDING_SHIPMENT)。
+    /// S8-DELIVERY-PAGE-TYPE-PRUNE-AND-TREND-ALIGN-1:Delivery 页近 N 日交付异常趋势。
+    /// 口径 module_code IN (S1,S7) AND exception_type_code IN (ORDER_DUE_DATE_DELAY / DELIVERY_DELAY_WARNING)。
     /// </summary>
     [HttpGet("delivery-trend")]
     public async Task<IActionResult> GetDeliveryTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7, string? period = null)

+ 4 - 3
server/Plugins/Admin.NET.Plugin.AiDOP/Dto/S8/AdoS8Dtos.cs

@@ -334,9 +334,10 @@ public class AdoS8DeliveryTrendDayDto
     public string Date { get; set; } = string.Empty;
     /// <summary>原始日期 yyyy-MM-dd</summary>
     public string RawDate { get; set; } = string.Empty;
-    public int OrderChange { get; set; }
-    public int DeliveryDelay { get; set; }
-    public int PendingShipment { get; set; }
+    /// <summary>订单交期延期(ORDER_DUE_DATE_DELAY)当日计数</summary>
+    public int OrderDueDateDelay { get; set; }
+    /// <summary>总装发货延期(DELIVERY_DELAY_WARNING)当日计数</summary>
+    public int DeliveryDelayWarning { get; set; }
     public int Total { get; set; }
 }
 

+ 15 - 21
server/Plugins/Admin.NET.Plugin.AiDOP/Service/S8/S8MonitoringService.cs

@@ -379,9 +379,10 @@ public class S8MonitoringService : ITransient
     }
 
     /// <summary>
-    /// S8-DELIVERY-TREND-CHART-REPLACE-DUPLICATE-SECTION-1:Delivery 页近 N 日交付异常趋势。
-    /// 口径:module_code IN (S1,S7) AND exception_type_code IN (ORDER_CHANGE / DELIVERY_DELAY / PENDING_SHIPMENT);
-    /// 时间字段 created_at;不排除 CLOSED;按日聚合,缺失日期补 0;days 限 1-30。
+    /// S8-DELIVERY-PAGE-TYPE-PRUNE-AND-TREND-ALIGN-1:Delivery 页近 N 日交付异常趋势。
+    /// 口径:module_code IN (S1,S7) AND exception_type_code IN (ORDER_DUE_DATE_DELAY / DELIVERY_DELAY_WARNING);
+    /// 时间字段 created_at;不排除 CLOSED;按日聚合,缺失日期补 0;days 限 1-30;
+    /// Total = OrderDueDateDelay + DeliveryDelayWarning(避免历史 bucket.Count 含未承载类型导致 total 与图线不一致)。
     /// </summary>
     public async Task<AdoS8DeliveryTrendDto> GetDeliveryTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7, string? period = null)
     {
@@ -403,11 +404,7 @@ public class S8MonitoringService : ITransient
         }
 
         var deliveryModules = new[] { "S1", "S7" };
-        var deliveryTypes = new[]
-        {
-            "ORDER_CHANGE", "DELIVERY_DELAY", "PENDING_SHIPMENT",
-            "ORDER_DUE_DATE_DELAY", "DELIVERY_DELAY_WARNING"
-        };
+        var deliveryTypes = new[] { "ORDER_DUE_DATE_DELAY", "DELIVERY_DELAY_WARNING" };
 
         var rows = await _rep.AsQueryable()
             .Where(e => e.TenantId == tenantId && e.FactoryId == factoryId && !e.IsDeleted)
@@ -426,17 +423,15 @@ public class S8MonitoringService : ITransient
         {
             var d = from.AddDays(i);
             var bucket = byDate.TryGetValue(d, out var list) ? list : new();
-            var oc = bucket.Count(r => r.ExceptionTypeCode == "ORDER_CHANGE");
-            var dd = bucket.Count(r => r.ExceptionTypeCode == "DELIVERY_DELAY");
-            var ps = bucket.Count(r => r.ExceptionTypeCode == "PENDING_SHIPMENT");
+            var orderDueDateDelay    = bucket.Count(r => r.ExceptionTypeCode == "ORDER_DUE_DATE_DELAY");
+            var deliveryDelayWarning = bucket.Count(r => r.ExceptionTypeCode == "DELIVERY_DELAY_WARNING");
             dayList.Add(new AdoS8DeliveryTrendDayDto
             {
-                Date           = d.ToString("MM/dd"),
-                RawDate        = d.ToString("yyyy-MM-dd"),
-                OrderChange    = oc,
-                DeliveryDelay  = dd,
-                PendingShipment = ps,
-                Total          = bucket.Count,
+                Date                 = d.ToString("MM/dd"),
+                RawDate              = d.ToString("yyyy-MM-dd"),
+                OrderDueDateDelay    = orderDueDateDelay,
+                DeliveryDelayWarning = deliveryDelayWarning,
+                Total                = orderDueDateDelay + deliveryDelayWarning,
             });
         }
 
@@ -643,13 +638,12 @@ public class S8MonitoringService : ITransient
 
         (string key, string label, string typeCode)[] specs = d switch
         {
+            // S8-DELIVERY-PAGE-TYPE-PRUNE-AND-TREND-ALIGN-1:Delivery 页类型卡收敛为 2 类;
+            // 显示名「总装发货延期」仅作大屏展示,不改 ado_s8_exception_type.type_name。
             "DELIVERY" => new (string, string, string)[]
             {
-                ("order-change",            "订单变更",     "ORDER_CHANGE"),
-                ("delivery-delay",          "交期延迟",     "DELIVERY_DELAY"),
-                ("stock-pending",           "入库待发",     "PENDING_SHIPMENT"),
                 ("order-due-date-delay",    "订单交期延期", "ORDER_DUE_DATE_DELAY"),
-                ("delivery-delay-warning",  "总装发货延期预警", "DELIVERY_DELAY_WARNING"),
+                ("delivery-delay-warning",  "总装发货延期", "DELIVERY_DELAY_WARNING"),
             },
             "PRODUCTION" => new (string, string, string)[]
             {