using Admin.NET.Plugin.AiDOP.MaterialWarehouse.Dto;
using Yitter.IdGenerator;
namespace Admin.NET.Plugin.AiDOP.MaterialWarehouse;
///
/// S5 来料检验任务(报检分录)操作:认领 / 调配 / 优先级 / 检验完成 / 生成检验单。
/// 对齐旧 DOP 任务列表(program 396052925665349)行为,数据落本库 qms_qcp_*。
///
[ApiDescriptionSettings(Order = 311, Description = "来料检验任务操作")]
[Route("api/S5IqcTaskEntry")]
[NonUnify]
public class IqcTaskEntryService : IDynamicApiController, ITransient
{
private const long MainTenantId = 1300000000001L;
private readonly ISqlSugarClient _db;
private readonly UserManager _userManager;
/// B-2:生成检验单时解析并固化 S0 原材料检规元数据。只读,不阻断生成。
private readonly S5IqcSpecResolver _specResolver;
public IqcTaskEntryService(ISqlSugarClient db, UserManager userManager, S5IqcSpecResolver specResolver)
{
_db = db;
_userManager = userManager;
_specResolver = specResolver;
}
private long ResolveTenantOrThrow()
{
var tid = _userManager.TenantId;
if (tid <= 0) throw Oops.Oh("无法确定当前租户,请重新登录或选择目标租户");
if (_userManager.SuperAdmin && tid == MainTenantId)
throw Oops.Oh("超级管理员操作前必须选择目标租户");
return tid;
}
[DisplayName("来料检验任务列表(报检分录)")]
[HttpGet("list")]
public async Task