|
|
@@ -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)[]
|
|
|
{
|