zs
2025-05-12 743c2748dd4e3c2c2a84c7ae930a9cf287453a84
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
@@ -32,6 +32,21 @@
            .FirstOrDefaultAsync(t => t.MaterialNo == materialNo, GetCancellationToken(cancellationToken));
    }
    /// <summary>
    /// 查找型号
    /// </summary>
    /// <param name="materiaModel"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    public virtual async Task<WmsMaterialStock> FindByModelAsync(string materiaModel, CancellationToken cancellationToken = default)
    {
        return await (await GetDbSetAsync())
            .IncludeDetails()
            .Where(u => !u.IsDeleted)
            .OrderBy(t => t.Sort)
            .FirstOrDefaultAsync(t => t.MaterialModel == materiaModel, GetCancellationToken(cancellationToken));
    }
    /// <inheritdoc />
    public async Task<bool> NameExistAsync(string materialNo, Guid? id = null)
    {
@@ -73,7 +88,7 @@
        .WhereIf(stock?.ContainerType > 0, u => u.ContainerType == stock.ContainerType)
        .WhereIf(!string.IsNullOrEmpty(stock?.MaterialBatch), u => u.MaterialBatch == stock.MaterialBatch)
        .WhereIf(!string.IsNullOrEmpty(stock?.SupplierCode), u => u.SupplierCode == stock.SupplierCode)
        .WhereIf(!string.IsNullOrEmpty(stock?.MaterialModel), u => u.MaterialModel.Contains(stock.MaterialModel))
        .WhereIf(!string.IsNullOrEmpty(stock?.MaterialModel), u => u.MaterialModel==stock.MaterialModel)
        .WhereIf(!string.IsNullOrEmpty(stock?.PlaceNo), u => u.PlaceNo == stock.PlaceNo)
        .WhereIf(stock.PlaceStatus > 0, u => u.PlaceStatus == stock.PlaceStatus)
        .WhereIf(stock?.StorageTypeNo > 0, u => u.StorageTypeNo == stock.StorageTypeNo)
@@ -108,7 +123,7 @@
        .ToListAsync(GetCancellationToken(cancellationToken));
        var groupedData = materialList
       .GroupBy(x => new { x.MaterialNo, x.PlaceNo, x.ContainerNo})
       .GroupBy(x => new { x.MaterialNo, x.PlaceNo, x.ContainerNo,x.MaterialModel})
       .Select(g => new WmsMaterialStock
       {
           MaterialNo = g.Key.MaterialNo,
@@ -119,7 +134,7 @@
           PlaceStatus = g.First().PlaceStatus,
           StorageTypeNo = g.First().StorageTypeNo,
           MaterialBatch = g.First().MaterialBatch,
           MaterialModel = g.First().MaterialModel,
           MaterialModel = g.Key.MaterialModel,
           AreaCode = g.First().AreaCode,
           AreaName = g.First().AreaName,
           CheckStatus = g.First().CheckStatus,
@@ -131,7 +146,7 @@
       .AsQueryable(); // 转换回IQueryable以支持后续操作
        var result = groupedData
        .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsMaterialStock.Sort) : sorting)
        .OrderBy(x=>x.StockNumber)
        .PageBy(skipCount, maxResultCount)
        .ToList();