IInboundMaterialService.cs 1.6 KB
using IndustrialControl.ViewModels;

namespace IndustrialControl.Services;

public interface IInboundMaterialService
{

    // NEW: 查询列表(图1)
    Task<IEnumerable<InboundOrderSummary>> ListInboundOrdersAsync(
   string? orderNoOrBarcode,
   DateTime startDate,
   DateTime endDate,
   string orderType,
   string[] orderTypeList,
   CancellationToken ct = default);
    
    Task<IReadOnlyList<InboundPendingRow>> GetInStockDetailAsync(string instockId, CancellationToken ct = default);
    Task<IReadOnlyList<InboundScannedRow>> GetInStockScanDetailAsync(string instockId, CancellationToken ct = default);
    /// <summary>扫描条码入库</summary>
    Task<SimpleOk> InStockByBarcodeAsync(string instockId, string barcode, CancellationToken ct = default);
    /// <summary>PDA 扫描通过(确认当前入库单已扫描项)</summary>
    Task<SimpleOk> ScanConfirmAsync(string instockId, CancellationToken ct = default);

    Task<SimpleOk> CancelScanAsync(string instockId, CancellationToken ct = default);
    Task<SimpleOk> ConfirmInstockAsync(string instockId, CancellationToken ct = default);
    /// <summary>判断入库单明细是否全部扫码确认</summary>
    Task<bool> JudgeInstockDetailScanAllAsync(string instockId, CancellationToken ct = default);
}

public record InboundOrder(string OrderNo, string Supplier, string LinkedNo, int ExpectedQty);

public record OutboundOrder(string OrderNo, string Supplier, string LinkedNo, int ExpectedQty);
public record ScanItem(int Index, string Barcode, string? Bin, int Qty);
public record SimpleOk(bool Succeeded, string? Message = null);