Files
qhmes/yy-admin-master/YY.Admin.Core/Core/Services/IWarehouseAreaService.cs

55 lines
2.3 KiB
C#
Raw Normal View History

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