AdoS8OrderFlowController.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using Admin.NET.Plugin.AiDOP.Dto.S8.OrderFlow;
  2. using Admin.NET.Plugin.AiDOP.Service.S8.OrderFlow;
  3. namespace Admin.NET.Plugin.AiDOP.Controllers.S8;
  4. /// <summary>
  5. /// ORDER-FLOW-S8-INTEGRATED-DOMAIN-RESET-1 t3d:S8 订单执行链路只读 API。
  6. /// 仅 GET endpoint;调用 S8OrderFlowService 5 个方法暴露。
  7. /// 路由:api/aidop/s8/order-flow/*。
  8. /// </summary>
  9. [ApiController]
  10. [Route("api/aidop/s8/order-flow")]
  11. [NonUnify]
  12. public class AdoS8OrderFlowController : ControllerBase
  13. {
  14. private readonly S8OrderFlowService _svc;
  15. public AdoS8OrderFlowController(S8OrderFlowService svc)
  16. {
  17. _svc = svc;
  18. }
  19. /// <summary>订单档案列表(不分页,当前 baseline 20 单)。</summary>
  20. [HttpGet("orders")]
  21. public async Task<IActionResult> OrdersAsync([FromQuery] AdoS8OrderFlowOrderQueryDto query)
  22. => Ok(await _svc.GetOrdersAsync(query));
  23. /// <summary>单订单详情(含 lifecycle 5 阶段,不含 substep/unit)。</summary>
  24. [HttpGet("orders/{orderCode}")]
  25. public async Task<IActionResult> OrderDetailAsync(string orderCode)
  26. => Ok(await _svc.GetOrderAsync(orderCode));
  27. /// <summary>订单链路(含 lifecycle + L2 substeps + L3 units;ProcurementPivot 留待后续切片注入)。</summary>
  28. [HttpGet("orders/{orderCode}/chain")]
  29. public async Task<IActionResult> ChainAsync(string orderCode)
  30. => Ok(await _svc.GetChainAsync(orderCode));
  31. /// <summary>链路聚合视图:BASELINE_PPT 走 snapshot;CURRENT_FILTERED 走实时聚合。</summary>
  32. [HttpGet("aggregate")]
  33. public async Task<IActionResult> AggregateAsync([FromQuery] AdoS8OrderFlowAggregateQueryDto query)
  34. => Ok(await _svc.GetAggregateAsync(query));
  35. /// <summary>采购透视:BASELINE_PPT 读 procurement_pivot 表 baseline 行。</summary>
  36. [HttpGet("procurement-pivot")]
  37. public async Task<IActionResult> ProcurementPivotAsync([FromQuery] AdoS8OrderFlowProcurementPivotQueryDto query)
  38. => Ok(await _svc.GetProcurementPivotAsync(query));
  39. /// <summary>
  40. /// S8-ORDER-CHAIN-PRODUCT-DESIGN-DRAWING-PERSIST-1:产品设计图号粒度聚合。
  41. /// orderCodes 为空时默认聚合全 20 单(scope=BASELINE_PPT);非空时按订单子集聚合(scope=CURRENT_FILTERED)。
  42. /// productType 仅过滤 drawings 明细列表,summary.categories 始终返回常规/非标/合计三档。
  43. /// </summary>
  44. [HttpGet("product-design/drawings")]
  45. public async Task<IActionResult> ProductDesignDrawingsAsync(
  46. [FromQuery] AdoS8OrderFlowProductDesignDrawingsQueryDto query)
  47. => Ok(await _svc.GetProductDesignDrawingsAsync(query));
  48. /// <summary>
  49. /// S8-ORDER-CHAIN-BODY-PRODUCTION-ORDER-LEVEL-SEED-FIX-1:本体生产透视。
  50. /// scope=BASELINE_PPT 读三表 baseline 行;scope=CURRENT_FILTERED 按 orderCodes CSV 取订单级行并聚合。
  51. /// orderCodes 为空(CURRENT_FILTERED)时返回空骨架,不静默 fallback baseline。
  52. /// </summary>
  53. [HttpGet("manufacturing-pivot")]
  54. public async Task<IActionResult> ManufacturingPivotAsync(
  55. [FromQuery] AdoS8OrderFlowManufacturingPivotQueryDto query)
  56. => Ok(await _svc.GetManufacturingPivotAsync(query));
  57. /// <summary>
  58. /// S8-ORDER-CHAIN-ASSEMBLY-DELIVERY-DATA-LINEAGE-AUDIT-1:总装发货透视。
  59. /// scope=BASELINE_PPT 读两表 baseline 行(5 门禁 + 4 并行准备);
  60. /// scope=CURRENT_FILTERED 按 orderCodes CSV 取订单级行并聚合,
  61. /// 末位门禁 SHIPMENT_CONFIRMATION 守恒为 stage.actual_days;
  62. /// pending 单不参与聚合;orderCodes 为空时返回空骨架,不 fallback baseline。
  63. /// 与 aggregate.finalAssemblyCollabSummary 通道并存:本 API 给门禁 KPI / 实际 / 偏差 / 齐套率,
  64. /// collabSummary 留作 exception 派生补充。
  65. /// </summary>
  66. [HttpGet("final-assembly-pivot")]
  67. public async Task<IActionResult> FinalAssemblyPivotAsync(
  68. [FromQuery] AdoS8FinalAssemblyPivotQueryDto query)
  69. => Ok(await _svc.GetFinalAssemblyPivotAsync(query));
  70. }