using YY.Admin.Core.Entity; namespace YY.Admin.Core.Services; public record WarehouseAreaPageResult(List Records, long Total, int PageNo, int PageSize); /// /// 库区管理服务(CRUD + 状态切换 + 编码校验)。 /// 走 jeecg 免密接口 /xslmes/mesXslWarehouseArea/anon/*。 /// /// 注意:本接口契约不可随意改签名,被以下调用方引用: /// - WarehouseAreaListViewModel(列表/筛选/启停/删除) /// - WarehouseAreaEditDialogViewModel(新增/编辑/校验) /// - WarehouseAreaPickerDialogViewModel(拆码明细库位选择弹窗) /// public interface IWarehouseAreaService { /// /// 分页查询。参数顺序与 WarehouseAreaListViewModel 调用一致: /// pageNo, pageSize, areaCode, areaName, warehouseId, status。 /// /// "0" 启用 / "1" 停用 / "" 或 null 表示不限 Task PageAsync( int pageNo, int pageSize, string? areaCode = null, string? areaName = null, string? warehouseId = null, string? status = null, CancellationToken ct = default); /// 按 ID 查单条。 Task GetByIdAsync(string id, CancellationToken ct = default); /// 新增库区。后端会校验 areaCode 重复。 Task AddAsync(MesXslWarehouseArea area, CancellationToken ct = default); /// 编辑库区(按 ID)。 Task EditAsync(MesXslWarehouseArea area, CancellationToken ct = default); /// 按 ID 删除。 Task DeleteAsync(string id, CancellationToken ct = default); /// 切换启停状态:传入目标状态 "0"=启用 / "1"=停用。 Task UpdateStatusAsync(string id, string newStatus, CancellationToken ct = default); /// /// 校验库区编码是否可用(不存在则可用)。 /// /// 待校验的库区编码 /// 编辑时排除自身 ID;新增传 null 或空 /// true=可用(无重复),false=已被占用 Task CheckAreaCodeAsync(string areaCode, string? excludeId, CancellationToken ct = default); }