|
...
|
...
|
@@ -5,18 +5,25 @@ namespace IndustrialControl.Services; |
|
|
|
public interface IWarehouseDataService
|
|
|
|
{
|
|
|
|
Task<InboundOrder> GetInboundOrderAsync(string orderNo);
|
|
|
|
Task<OutboundOrder> GetOutboundOrderAsync(string orderNo);
|
|
|
|
Task<SimpleOk> ConfirmInboundAsync(string orderNo, IEnumerable<ScanItem> items);
|
|
|
|
|
|
|
|
Task<SimpleOk> ConfirmInboundProductionAsync(string orderNo, IEnumerable<ScanItem> items);
|
|
|
|
Task<SimpleOk> ConfirmOutboundProductionAsync(string orderNo, IEnumerable<ScanItem> items);
|
|
|
|
Task<SimpleOk> ConfirmOutboundMaterialAsync(string orderNo, IEnumerable<ScanItem> items);
|
|
|
|
Task<SimpleOk> ConfirmOutboundFinishedAsync(string orderNo, IEnumerable<ScanItem> items);
|
|
|
|
Task<IEnumerable<string>> ListInboundBinsAsync(string orderNo);
|
|
|
|
Task<IEnumerable<string>> ListOutboundBinsAsync(string orderNo);
|
|
|
|
|
|
|
|
// NEW: 查询列表(图1)
|
|
|
|
Task<IEnumerable<InboundOrderSummary>> ListInboundOrdersAsync(string? orderNoOrBarcode, DateTime createdDate);
|
|
|
|
// NEW: 查询列表(图1)
|
|
|
|
Task<IEnumerable<OutboundOrderSummary>> ListOutboundOrdersAsync(string? orderNoOrBarcode, DateTime createdDate);
|
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
...
|
...
|
@@ -27,12 +34,19 @@ public class MockWarehouseDataService : IWarehouseDataService |
|
|
|
public Task<InboundOrder> GetInboundOrderAsync(string orderNo)
|
|
|
|
=> Task.FromResult(new InboundOrder(orderNo, "XXXX", "DHD_23326", _rand.Next(10, 80)));
|
|
|
|
|
|
|
|
public Task<OutboundOrder> GetOutboundOrderAsync(string orderNo)
|
|
|
|
=> Task.FromResult(new OutboundOrder(orderNo, "XXXX", "DHD_23326", _rand.Next(10, 80)));
|
|
|
|
|
|
|
|
public Task<SimpleOk> ConfirmInboundAsync(string orderNo, IEnumerable<ScanItem> items)
|
|
|
|
=> Task.FromResult(new SimpleOk(true, $"入库成功:{items.Count()} 条"));
|
|
|
|
|
|
|
|
public Task<SimpleOk> ConfirmOutboundAsync(string orderNo, IEnumerable<ScanItem> items)
|
|
|
|
=> Task.FromResult(new SimpleOk(true, $"出库库成功:{items.Count()} 条"));
|
|
|
|
|
|
|
|
public Task<SimpleOk> ConfirmInboundProductionAsync(string orderNo, IEnumerable<ScanItem> items)
|
|
|
|
=> Task.FromResult(new SimpleOk(true, $"生产入库成功:{items.Count()} 条"));
|
|
|
|
|
|
|
|
public Task<SimpleOk> ConfirmOutboundProductionAsync(string orderNo, IEnumerable<ScanItem> items)
|
|
|
|
=> Task.FromResult(new SimpleOk(true, $"生产出库成功:{items.Count()} 条"));
|
|
|
|
public Task<SimpleOk> ConfirmOutboundMaterialAsync(string orderNo, IEnumerable<ScanItem> items)
|
|
|
|
=> Task.FromResult(new SimpleOk(true, $"物料出库成功:{items.Count()} 条"));
|
|
|
|
|
|
...
|
...
|
@@ -60,6 +74,28 @@ public class MockWarehouseDataService : IWarehouseDataService |
|
|
|
|
|
|
|
return Task.FromResult(filtered);
|
|
|
|
}
|
|
|
|
public Task<IEnumerable<OutboundOrderSummary>> ListOutboundOrdersAsync(string? orderNoOrBarcode, DateTime createdDate)
|
|
|
|
{
|
|
|
|
// 简单过滤逻辑(按需改造)
|
|
|
|
var today = DateTime.Today;
|
|
|
|
var all = Enumerable.Range(1, 8).Select(i =>
|
|
|
|
new OutboundOrderSummary(
|
|
|
|
OrderNo: $"CGD{today:yyyyMMdd}-{i:000}",
|
|
|
|
InboundType: (i % 2 == 0) ? "采购入库" : "生产入库",
|
|
|
|
Supplier: $"供应商{i}",
|
|
|
|
CreatedAt: today.AddDays(-i)
|
|
|
|
));
|
|
|
|
|
|
|
|
IEnumerable<OutboundOrderSummary> filtered = all;
|
|
|
|
|
|
|
|
//if (!string.IsNullOrWhiteSpace(orderNoOrBarcode))
|
|
|
|
// filtered = filtered.Where(x => x.OrderNo.Contains(orderNoOrBarcode, StringComparison.OrdinalIgnoreCase));
|
|
|
|
|
|
|
|
//// 示例:按创建日期“同一天”过滤(你可以换成 >= 起始 && < 次日)
|
|
|
|
//filtered = filtered.Where(x => x.CreatedAt.Date == createdDate.Date);
|
|
|
|
|
|
|
|
return Task.FromResult(filtered);
|
|
|
|
}
|
|
|
|
|
|
|
|
public Task<IEnumerable<string>> ListInboundBinsAsync(string orderNo)
|
|
|
|
{
|
|
...
|
...
|
@@ -67,5 +103,9 @@ public class MockWarehouseDataService : IWarehouseDataService |
|
|
|
return Task.FromResult<IEnumerable<string>>(bins);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public Task<IEnumerable<string>> ListOutboundBinsAsync(string orderNo)
|
|
|
|
{
|
|
|
|
var bins = new[] { "CK1_A201", "CK1_A202", "CK1_A203", "CK1_A204", "CK1_B101" };
|
|
|
|
return Task.FromResult<IEnumerable<string>>(bins);
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|