namespace Admin.NET.Plugin.AiDOP.Order;
///
/// 出货计划服务 📦
/// 路由前缀:/api/Order/shippingplan/...
///
/// 【租户安全边界】需认证访问(已移除类级 [AllowAnonymous]);租户一律经
/// AidopTenantScope.ResolveOrThrow 从认证后 JWT 解析,无有效租户即拒绝,
/// 不读前端 tenantId、无默认回退(原实现:类级匿名 + 直接取 _userManager.TenantId,
/// 匿名时 TenantId=0 使租户过滤失效/查不到数据)。
///
[ApiDescriptionSettings(Order = 290, Description = "出货计划")]
[Route("api/Order")]
[NonUnify]
public class ShippingPlanService : IDynamicApiController, ITransient
{
private readonly ISqlSugarClient _db;
private readonly SqlSugarRepository _planRep;
private readonly SqlSugarRepository _detailRep;
private readonly SqlSugarRepository _asnMasterRep;
private readonly SqlSugarRepository _asnDetailRep;
private readonly UserManager _userManager;
public ShippingPlanService(
ISqlSugarClient db,
SqlSugarRepository planRep,
SqlSugarRepository detailRep,
SqlSugarRepository asnMasterRep,
SqlSugarRepository asnDetailRep,
UserManager userManager)
{
_db = db;
_planRep = planRep;
_detailRep = detailRep;
_asnMasterRep = asnMasterRep;
_asnDetailRep = asnDetailRep;
_userManager = userManager;
}
// ══════════════════════════════════════════════════════════════
// 列表 GET /api/Order/shippingplan/list
// ══════════════════════════════════════════════════════════════
/// 获取出货计划分页列表 📦
[DisplayName("获取出货计划列表")]
[HttpGet("shippingplan/list")]
public async Task