|
|
@@ -544,10 +544,14 @@ public class S8MonitoringService : ITransient
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// S8-PROD-SUPPLY-TREND-CHART-REPLACE-DUPLICATE-SECTION-1:Supply 页近 N 日供应异常趋势。
|
|
|
- /// 口径:module_code IN (S3,S4,S5) AND exception_type_code IN 7 类(SUPPLIER_ETA_ISSUE / SUPPLIER_SHIP_ISSUE
|
|
|
- /// / WAREHOUSE_RECEIPT_ABNORMAL / IQC_ISSUE / WH_PUTAWAY_ISSUE / WORK_ORDER_KITTING_ABNORMAL / WORK_ORDER_ISSUE_ABNORMAL);
|
|
|
- /// 时间字段 created_at;不排除 CLOSED;按日聚合,缺失日期补 0;days 限 1-30。
|
|
|
+ /// S8-SUPPLY-PAGE-TYPE-TOTAL-ALIGN-1:Supply 页近 N 日供应异常趋势。
|
|
|
+ /// 口径:module_code IN (S3,S4,S5) AND exception_type_code IN 11 类
|
|
|
+ /// (SUPPLIER_ETA_ISSUE / SUPPLIER_SHIP_ISSUE / SUPPLIER_DELIVERY_DELAY_WARNING /
|
|
|
+ /// WAREHOUSE_RECEIPT_ABNORMAL / IQC_ISSUE / WH_PUTAWAY_ISSUE /
|
|
|
+ /// WORK_ORDER_KITTING_ABNORMAL / WORK_ORDER_ISSUE_ABNORMAL /
|
|
|
+ /// PURCHASE_EXECUTION_DELAY / MATERIAL_STOCK_ABNORMAL / INVENTORY_TURNOVER_ABNORMAL);
|
|
|
+ /// 时间字段 created_at;不排除 CLOSED;按日聚合,缺失日期补 0;days 限 1-30;
|
|
|
+ /// Total = 11 个字段之和(避免历史 bucket.Count 含未承载类型导致 total 与图线不一致)。
|
|
|
/// </summary>
|
|
|
public async Task<AdoS8SupplyTrendDto> GetSupplyTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7, string? period = null)
|
|
|
{
|
|
|
@@ -571,9 +575,10 @@ public class S8MonitoringService : ITransient
|
|
|
var supplyModules = new[] { "S3", "S4", "S5" };
|
|
|
var supplyTypes = new[]
|
|
|
{
|
|
|
- "SUPPLIER_ETA_ISSUE", "SUPPLIER_SHIP_ISSUE", "WAREHOUSE_RECEIPT_ABNORMAL",
|
|
|
- "IQC_ISSUE", "WH_PUTAWAY_ISSUE", "WORK_ORDER_KITTING_ABNORMAL", "WORK_ORDER_ISSUE_ABNORMAL",
|
|
|
- "PURCHASE_EXECUTION_DELAY"
|
|
|
+ "SUPPLIER_ETA_ISSUE", "SUPPLIER_SHIP_ISSUE", "SUPPLIER_DELIVERY_DELAY_WARNING",
|
|
|
+ "WAREHOUSE_RECEIPT_ABNORMAL", "IQC_ISSUE", "WH_PUTAWAY_ISSUE",
|
|
|
+ "WORK_ORDER_KITTING_ABNORMAL", "WORK_ORDER_ISSUE_ABNORMAL",
|
|
|
+ "PURCHASE_EXECUTION_DELAY", "MATERIAL_STOCK_ABNORMAL", "INVENTORY_TURNOVER_ABNORMAL"
|
|
|
};
|
|
|
|
|
|
var rows = await _rep.AsQueryable()
|
|
|
@@ -591,25 +596,33 @@ public class S8MonitoringService : ITransient
|
|
|
{
|
|
|
var d = from.AddDays(i);
|
|
|
var bucket = byDate.TryGetValue(d, out var list) ? list : new();
|
|
|
- var s1 = bucket.Count(r => r.ExceptionTypeCode == "SUPPLIER_ETA_ISSUE");
|
|
|
- var s2 = bucket.Count(r => r.ExceptionTypeCode == "SUPPLIER_SHIP_ISSUE");
|
|
|
- var s3 = bucket.Count(r => r.ExceptionTypeCode == "WAREHOUSE_RECEIPT_ABNORMAL");
|
|
|
- var s4 = bucket.Count(r => r.ExceptionTypeCode == "IQC_ISSUE");
|
|
|
- var s5 = bucket.Count(r => r.ExceptionTypeCode == "WH_PUTAWAY_ISSUE");
|
|
|
- var s6 = bucket.Count(r => r.ExceptionTypeCode == "WORK_ORDER_KITTING_ABNORMAL");
|
|
|
- var s7 = bucket.Count(r => r.ExceptionTypeCode == "WORK_ORDER_ISSUE_ABNORMAL");
|
|
|
+ var sEta = bucket.Count(r => r.ExceptionTypeCode == "SUPPLIER_ETA_ISSUE");
|
|
|
+ var sShip = bucket.Count(r => r.ExceptionTypeCode == "SUPPLIER_SHIP_ISSUE");
|
|
|
+ var sDdw = bucket.Count(r => r.ExceptionTypeCode == "SUPPLIER_DELIVERY_DELAY_WARNING");
|
|
|
+ var whR = bucket.Count(r => r.ExceptionTypeCode == "WAREHOUSE_RECEIPT_ABNORMAL");
|
|
|
+ var iqc = bucket.Count(r => r.ExceptionTypeCode == "IQC_ISSUE");
|
|
|
+ var whP = bucket.Count(r => r.ExceptionTypeCode == "WH_PUTAWAY_ISSUE");
|
|
|
+ var woK = bucket.Count(r => r.ExceptionTypeCode == "WORK_ORDER_KITTING_ABNORMAL");
|
|
|
+ var woI = bucket.Count(r => r.ExceptionTypeCode == "WORK_ORDER_ISSUE_ABNORMAL");
|
|
|
+ var ped = bucket.Count(r => r.ExceptionTypeCode == "PURCHASE_EXECUTION_DELAY");
|
|
|
+ var msa = bucket.Count(r => r.ExceptionTypeCode == "MATERIAL_STOCK_ABNORMAL");
|
|
|
+ var ita = bucket.Count(r => r.ExceptionTypeCode == "INVENTORY_TURNOVER_ABNORMAL");
|
|
|
dayList.Add(new AdoS8SupplyTrendDayDto
|
|
|
{
|
|
|
- Date = d.ToString("MM/dd"),
|
|
|
- RawDate = d.ToString("yyyy-MM-dd"),
|
|
|
- SupplierEtaIssue = s1,
|
|
|
- SupplierShipIssue = s2,
|
|
|
- WarehouseReceiptAbnormal = s3,
|
|
|
- IqcIssue = s4,
|
|
|
- WarehousePutawayIssue = s5,
|
|
|
- WorkOrderKittingAbnormal = s6,
|
|
|
- WorkOrderIssueAbnormal = s7,
|
|
|
- Total = bucket.Count,
|
|
|
+ Date = d.ToString("MM/dd"),
|
|
|
+ RawDate = d.ToString("yyyy-MM-dd"),
|
|
|
+ SupplierEtaIssue = sEta,
|
|
|
+ SupplierShipIssue = sShip,
|
|
|
+ SupplierDeliveryDelayWarning = sDdw,
|
|
|
+ WarehouseReceiptAbnormal = whR,
|
|
|
+ IqcIssue = iqc,
|
|
|
+ WarehousePutawayIssue = whP,
|
|
|
+ WorkOrderKittingAbnormal = woK,
|
|
|
+ WorkOrderIssueAbnormal = woI,
|
|
|
+ PurchaseExecutionDelay = ped,
|
|
|
+ MaterialStockAbnormal = msa,
|
|
|
+ InventoryTurnoverAbnormal = ita,
|
|
|
+ Total = sEta + sShip + sDdw + whR + iqc + whP + woK + woI + ped + msa + ita,
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -666,14 +679,20 @@ public class S8MonitoringService : ITransient
|
|
|
},
|
|
|
"SUPPLY" => new (string, string, string)[]
|
|
|
{
|
|
|
- ("supplier-reply-delay", "供应商回复交期异常", "SUPPLIER_ETA_ISSUE"),
|
|
|
- ("supplier-ship-fault", "供应商发货异常", "SUPPLIER_SHIP_ISSUE"),
|
|
|
- ("warehouse-receipt", "仓库收货异常", "WAREHOUSE_RECEIPT_ABNORMAL"),
|
|
|
- ("iqc-inspection", "IQC 检验异常", "IQC_ISSUE"),
|
|
|
- ("warehouse-shelving", "仓库上架入库异常", "WH_PUTAWAY_ISSUE"),
|
|
|
- ("work-order-prepare", "仓库工单备料异常", "WORK_ORDER_KITTING_ABNORMAL"),
|
|
|
- ("work-order-issue", "仓库工单发料异常", "WORK_ORDER_ISSUE_ABNORMAL"),
|
|
|
- ("purchase-execution-delay", "采购执行延期", "PURCHASE_EXECUTION_DELAY"),
|
|
|
+ // S8-SUPPLY-PAGE-TYPE-TOTAL-ALIGN-1:SUPPLY 大屏明细 11 类,与左侧 S3/S4/S5 stage summary 对齐。
|
|
|
+ // 新增 SUPPLIER_DELIVERY_DELAY_WARNING (S3) / MATERIAL_STOCK_ABNORMAL (S5) / INVENTORY_TURNOVER_ABNORMAL (S5),
|
|
|
+ // 显示名沿用 DB type_name 既有命名,不改 ado_s8_exception_type.type_name。
|
|
|
+ ("supplier-reply-delay", "供应商回复交期异常", "SUPPLIER_ETA_ISSUE"),
|
|
|
+ ("supplier-ship-fault", "供应商发货异常", "SUPPLIER_SHIP_ISSUE"),
|
|
|
+ ("supplier-delivery-delay-warning","供应商交付延期预警", "SUPPLIER_DELIVERY_DELAY_WARNING"),
|
|
|
+ ("warehouse-receipt", "仓库收货异常", "WAREHOUSE_RECEIPT_ABNORMAL"),
|
|
|
+ ("iqc-inspection", "IQC 检验异常", "IQC_ISSUE"),
|
|
|
+ ("warehouse-shelving", "仓库上架入库异常", "WH_PUTAWAY_ISSUE"),
|
|
|
+ ("work-order-prepare", "仓库工单备料异常", "WORK_ORDER_KITTING_ABNORMAL"),
|
|
|
+ ("work-order-issue", "仓库工单发料异常", "WORK_ORDER_ISSUE_ABNORMAL"),
|
|
|
+ ("purchase-execution-delay", "采购执行延期", "PURCHASE_EXECUTION_DELAY"),
|
|
|
+ ("material-stock-abnormal", "物料库存异常", "MATERIAL_STOCK_ABNORMAL"),
|
|
|
+ ("inventory-turnover-abnormal", "库存周转异常", "INVENTORY_TURNOVER_ABNORMAL"),
|
|
|
},
|
|
|
_ => Array.Empty<(string, string, string)>(),
|
|
|
};
|