This commit is contained in:
18942506660
2024-10-17 14:03:12 +08:00
parent a1716aa75a
commit ea8ac33a56
8 changed files with 106 additions and 9 deletions

View File

@@ -18,6 +18,11 @@ namespace WMS.Web.Domain.IService.Public
/// <returns></returns>
public Task<Result<List<LingXingStockResponse>>> GetStock();
/// <summary>
/// 获取领星所有仓库
/// </summary>
/// <returns></returns>
public Task<Result<List<LingXingSellerResponse>>> GetSeller();
/// <summary>
/// 获取即时库存
/// </summary>
/// <returns></returns>

View File

@@ -78,28 +78,36 @@ namespace WMS.Web.Domain.Services
List<ErpMaterialDto> materials = new List<ErpMaterialDto>();
if (materials_result.IsSuccess)
materials = materials_result.Data.ToList();
//获取店铺
var sellerList = await _lingXingService.GetSeller();
//合并
var group = resInventory.Data.GroupBy(g => (g.StockId, g.SKU, g.SellerId));
List<ProductInventory> inventoryList = new List<ProductInventory>();
foreach (var item in resInventory.Data)
foreach (var item in group)
{
//如果物料不匹配 过滤
var m = materials.FirstOrDefault(f => f.Specifications.Equals(item.SKU));
var m = materials.FirstOrDefault(f => f.Specifications.Equals(item.Key.SKU));
if (m == null) continue;
//找仓库
var l_stock = resStock.Data.FirstOrDefault(f => f.Id == item.StockId);
var l_stock = resStock.Data.FirstOrDefault(f => f.Id == item.Key.StockId);
if (l_stock == null) continue;
var stock = r.FirstOrDefault(f => f.WarehouseCodeOfLingxing.Equals(l_stock.Name));
if (stock == null) continue;
//店铺
var seller = sellerList.Data.FirstOrDefault(f=>f.Id== item.Key.SellerId);
if (seller == null) continue;
var pList = resInventory.Data.Where(w => w.SKU == item.Key.SKU
&& w.StockId == item.Key.StockId && w.SellerId == item.Key.SellerId).ToList();
var entity = new ProductInventory()
{
Type=ProductInventoryType.LingXing,
Type = ProductInventoryType.LingXing,
MaterialNumber = m.MaterialNumber,
Customer = item.SellerId,
Customer = seller.Name,
OrgCode = stock.Code,
StockCode = stock.ErpOrgCode,
Qty = item.Product_Valid_Num,
BeforeQty = item.Product_Total
Qty = pList.Sum(s => s.Product_Valid_Num),
BeforeQty = pList.Sum(s => s.Product_Total)
};
inventoryList.Add(entity);
}

View File

@@ -71,6 +71,7 @@ namespace WMS.Web.Domain.Services.Public
/// <returns></returns>
public async Task<Result<List<LingXingStockResponse>>> GetStock()
{
//默认获取本地仓库 如果需要海外仓 另外需传参数type
var request = new LingXingRequest();
var resUrl = await GetStr<LingXingRequest>("/erp/sc/data/local_inventory/warehouse", request);
if (!resUrl.IsSuccess) return Result<List<LingXingStockResponse>>.ReFailure(ResultCodes.LingXingUrlError);
@@ -80,6 +81,24 @@ namespace WMS.Web.Domain.Services.Public
return Result<List<LingXingStockResponse>>.ReSuccess(JsonConvert.DeserializeObject<List<LingXingStockResponse>>(res.Data.ToString()));
}
/// <summary>
/// 获取所有店铺
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<Result<List<LingXingSellerResponse>>> GetSeller()
{
var request = new LingXingKongRequest();
var resUrl = await GetStr<LingXingKongRequest>("/erp/sc/data/seller/lists", request);
if (!resUrl.IsSuccess) return Result<List<LingXingSellerResponse>>.ReFailure(ResultCodes.LingXingUrlError);
var res = await _httpClientService.GetAsync<LingXingResponse>(resUrl.Data);
if (res.Code != 0) return Result<List<LingXingSellerResponse>>.ReFailure(ResultCodes.LingXingDataError);
return Result<List<LingXingSellerResponse>>.ReSuccess(JsonConvert.DeserializeObject<List<LingXingSellerResponse>>(res.Data.ToString()));
}
/// <summary>
/// 获取即使库存
/// </summary>
@@ -301,6 +320,7 @@ namespace WMS.Web.Domain.Services.Public
return inParam;
}
#endregion
}
public class LxSignInfo