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

@@ -114,7 +114,8 @@ namespace WMS.Web.Api.Controllers
//var ss=JsonConvert.DeserializeObject<LingXingResponse<LingXingStockResponse>>(str);
//var b = System.Text.Json.JsonSerializer.Deserialize<LingXingResponse<LingXingStockResponse>>(str);
//await _productInventoryService.LingXing();
//var s = await _lingXingService.GetStock();
//var s = await _lingXingService.GetSeller();
//var ns = s.Data.Where(w =>w.Id== "2101").ToList();
//string str = string.Join(",", s.Data.Select(s => s.Id).ToList());
var sd= await _lingXingService.GetInventory(new LingXingInventoryRequest() { wid = "437" });
string sdsdf = sd.Message;

View File

@@ -4039,6 +4039,21 @@
页条数
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.LingXing.LingXingSellerResponse">
<summary>
店铺信息
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.LingXing.LingXingSellerResponse.Id">
<summary>
id
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.LingXing.LingXingSellerResponse.Name">
<summary>
name
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.LingXing.LingXingStockResponse.Id">
<summary>
id

View File

@@ -4321,6 +4321,12 @@
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.ILingXingService.GetSeller">
<summary>
获取领星所有仓库
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.ILingXingService.GetInventory(WMS.Web.Core.Dto.LingXing.LingXingInventoryRequest)">
<summary>
获取即时库存
@@ -6304,6 +6310,13 @@
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.LingXingService.GetSeller">
<summary>
获取所有店铺
</summary>
<returns></returns>
<exception cref="T:System.NotImplementedException"></exception>
</member>
<member name="M:WMS.Web.Domain.Services.Public.LingXingService.GetInventory(WMS.Web.Core.Dto.LingXing.LingXingInventoryRequest)">
<summary>
获取即使库存

View File

@@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.LingXing
{
public class LingXingKongRequest
{
}
}

View File

@@ -0,0 +1,25 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.LingXing
{
/// <summary>
/// 店铺信息
/// </summary>
public class LingXingSellerResponse
{
public LingXingSellerResponse() { }
/// <summary>
/// id
/// </summary>
[JsonProperty("sid")]
public string Id { get; set; }
/// <summary>
/// name
/// </summary>
[JsonProperty("name")]
public string Name { get; set; }
}
}

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