using Admin.NET.Plugin.AiDOP.Dto.S8; using Admin.NET.Plugin.AiDOP.Service.S8; namespace Admin.NET.Plugin.AiDOP.Controllers.S8; [ApiController] [Route("api/aidop/s8/monitoring")] [NonUnify] public class AdoS8MonitoringController : ControllerBase { private readonly S8MonitoringService _svc; public AdoS8MonitoringController(S8MonitoringService svc) { _svc = svc; } /// /// 异常监控汇总——供 4 个监控页顶部徽标和模块汇总表使用。 /// sceneCode 不传时返回全部模块聚合(综合全景页)。 /// [HttpGet("summary")] public async Task GetSummaryAsync([FromQuery] AdoS8MonitoringSummaryQueryDto q) => Ok(await _svc.GetSummaryAsync(q)); /// /// 9宫格数据:S1-S7 订单健康分布 + S8业务类别汇总 + S9部门汇总。 /// [HttpGet("order-grid")] public async Task GetOrderGridAsync() => Ok(await _svc.GetOrderGridAsync()); /// /// 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)。 /// [HttpGet("delivery-trend")] public async Task GetDeliveryTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7) => Ok(await _svc.GetDeliveryTrendAsync(tenantId, factoryId, days)); /// /// S8-PROD-SUPPLY-TREND-CHART-REPLACE-DUPLICATE-SECTION-1:Production 页近 N 日生产异常趋势。 /// 口径 module_code IN (S2,S6) AND exception_type_code IN (EQUIP_FAULT / MFG_MATERIAL_ABNORMAL / MFG_QUALITY_ABNORMAL)。 /// [HttpGet("production-trend")] public async Task GetProductionTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7) => Ok(await _svc.GetProductionTrendAsync(tenantId, factoryId, days)); /// /// S8-PROD-SUPPLY-TREND-CHART-REPLACE-DUPLICATE-SECTION-1:Supply 页近 N 日供应异常趋势。 /// 口径 module_code IN (S3,S4,S5) AND exception_type_code IN 7 类供应异常。 /// [HttpGet("supply-trend")] public async Task GetSupplyTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7) => Ok(await _svc.GetSupplyTrendAsync(tenantId, factoryId, days)); /// /// S8-SIDEBAR-TYPE-CARD-WINDOW-TOGGLE-1:专题页右侧异常类型卡同窗口同分母聚合。 /// domain ∈ {DELIVERY, PRODUCTION, SUPPLY};window ∈ {LAST_24H(默认), LAST_7D}。 /// [HttpGet("domain-type-metrics")] public async Task GetDomainTypeMetricsAsync(string domain, string window = "LAST_24H", long tenantId = 1, long factoryId = 1) => Ok(await _svc.GetDomainTypeMetricsAsync(domain, window, tenantId, factoryId)); }