27 lines
1.5 KiB
C#
27 lines
1.5 KiB
C#
using YY.Admin.Core.Entity;
|
||
|
||
namespace YY.Admin.Core.Services;
|
||
|
||
public record RawMaterialCardPageResult(List<MesXslRawMaterialCard> Records, long Total, int Current, int Size);
|
||
|
||
public interface IRawMaterialCardService
|
||
{
|
||
Task<RawMaterialCardPageResult> PageAsync(int pageNo, int pageSize,
|
||
string? barcode = null, string? batchNo = null, string? materialName = null,
|
||
string? supplierName = null, string? status = null, CancellationToken ct = default);
|
||
Task<MesXslRawMaterialCard?> GetByIdAsync(string id, CancellationToken ct = default);
|
||
Task<bool> AddAsync(MesXslRawMaterialCard card, CancellationToken ct = default);
|
||
Task<bool> EditAsync(MesXslRawMaterialCard card, CancellationToken ct = default);
|
||
Task<bool> DeleteAsync(string id, CancellationToken ct = default);
|
||
Task<bool> DeleteBatchAsync(string ids, CancellationToken ct = default);
|
||
Task<bool> UpdatePriorityAsync(string id, string priorityPickup, CancellationToken ct = default);
|
||
|
||
/// <summary>
|
||
/// 按拆码明细 ID 列表批量删除原材料卡片。
|
||
/// </summary>
|
||
/// <param name="splitDetailIds">拆码明细行的 GUID 集合(自动 distinct,空跳过)</param>
|
||
/// <param name="dryRun">为 true 时仅返回匹配数量、不真正删除(用于「重新拆码」弹窗预提示)</param>
|
||
/// <returns>匹配/删除的卡片数量;失败返回 -1</returns>
|
||
Task<int> DeleteBySplitDetailIdsAsync(IEnumerable<string> splitDetailIds, bool dryRun = false, CancellationToken ct = default);
|
||
}
|