This commit is contained in:
18942506660
2024-10-30 11:17:12 +08:00
parent aaa6b57789
commit 9276b29a81
3 changed files with 40 additions and 36 deletions

View File

@@ -9,6 +9,6 @@ namespace WMS.Web.Domain.IService.Public
{ {
public interface IErpInventoryService public interface IErpInventoryService
{ {
Task<Result<List<ErpInventoryDto>>> GetInventory(string stockCodes); Task<Result<List<ErpInventoryDto>>> GetInventory(List<string> stockCodes);
} }
} }

View File

@@ -62,14 +62,14 @@ namespace WMS.Web.Domain.Services
{ {
//获取单点配置 //获取单点配置
var r = await _basicsRepositories.GetUcStockByHeadOfficeAsync("", 1); var r = await _basicsRepositories.GetUcStockByHeadOfficeAsync("", 1);
r = r.Where(w => w.Code.Equals("CK001")).ToList(); //r = r.Where(w => w.Code.Equals("CK001")).ToList();
var codes = r.Where(w => var codes = r.Where(w =>
w.ManagementSystem == 1 || w.ManagementSystem == 4).Select(s => (s.Code, s.ErpOrgCode)).ToList(); w.ManagementSystem == 1 || w.ManagementSystem == 4).Select(s => (s.Code, s.ErpOrgCode)).ToList();
if (codes.Count() <= 0) return Result.ReSuccess(); if (codes.Count() <= 0) return Result.ReSuccess();
var str = string.Join(",", codes.Select(s => s.Code).ToList()); //var str = string.Join(",", codes.Select(s => s.Code).ToList());
var res = await _erpInventoryService.GetInventory(str); var res = await _erpInventoryService.GetInventory(codes.Select(s => s.Code).ToList());
_logger.LogInformation($"拉去金蝶数据结果:{res.IsSuccess} {res.Message} {res.Data.Count()}"); _logger.LogInformation($"拉去金蝶数据结果:{res.IsSuccess} {res.Message} {res.Data.Count()}");
if (!res.IsSuccess) return res; if (!res.IsSuccess) return res;
//过滤掉不符合要求的组织和仓库组合 //过滤掉不符合要求的组织和仓库组合

View File

@@ -45,53 +45,57 @@ namespace WMS.Web.Domain.Services.Public
var iResult = JObject.Parse(response)["LoginResultType"].Value<int>(); var iResult = JObject.Parse(response)["LoginResultType"].Value<int>();
return iResult == 1 ? true : false; return iResult == 1 ? true : false;
} }
public async Task<Result<List<ErpInventoryDto>>> GetInventory(string stockCodes) public async Task<Result<List<ErpInventoryDto>>> GetInventory(List<string> stockCodes)
{ {
List<ErpInventoryDto> list = new List<ErpInventoryDto>(); List<ErpInventoryDto> list = new List<ErpInventoryDto>();
HttpClientEx httpClient = new HttpClientEx(); HttpClientEx httpClient = new HttpClientEx();
var isSuccess = Login(httpClient); var isSuccess = Login(httpClient);
string baseUrl = _erpOptions.EndpointAddress.Replace("/ERPGW.asmx", ""); string baseUrl = _erpOptions.EndpointAddress.Replace("/ERPGW.asmx", "");
httpClient.Url = string.Format("{0}/Kingdee.K3.SCM.WebApi.ServicesStub.InventoryQueryService.GetInventoryData.common.kdsvc", baseUrl); httpClient.Url = string.Format("{0}/Kingdee.K3.SCM.WebApi.ServicesStub.InventoryQueryService.GetInventoryData.common.kdsvc", baseUrl);
List<object> Parameters = new List<object>();
var model = new InventoryParamModel();
model.fstocknumbers = stockCodes;
//model.fmaterialnumbers = "G01-11-572474";
model.isshowauxprop = true;
model.isshowstockloc = true;
model.pageindex = 1;
model.pagerows = 10000;
Parameters.Add(model);
httpClient.Content = JsonConvert.SerializeObject(Parameters); foreach (var code in stockCodes)
_logger.LogInformation($"1.开始进行连接 {stockCodes}");
string content = httpClient.AsyncRequest();
_logger.LogInformation($"金蝶返回数据{content}");
JObject resData = JObject.Parse(content);
if (resData["success"].ToString().ToLower() != "true")
return Result<List<ErpInventoryDto>>.ReFailure(ResultCodes.Erp_Inventory_Error);
string json = resData["data"].ToString();
var datas = JsonConvert.DeserializeObject<List<ErpInventoryDto>>(json);
list.AddRange(datas);
int num = Convert.ToInt32(resData["rowcount"]) / 10000;
for (int i = 1; i <= num; i++)
{ {
model.pageindex++; List<object> Parameters = new List<object>();
var model = new InventoryParamModel();
model.fstocknumbers = code;
//model.fmaterialnumbers = "G01-11-572474";
model.isshowauxprop = true;
model.isshowstockloc = true;
model.pageindex = 1;
model.pagerows = 10000;
Parameters.Add(model);
httpClient.Content = JsonConvert.SerializeObject(Parameters); httpClient.Content = JsonConvert.SerializeObject(Parameters);
_logger.LogInformation($"1.开始进行连接 {code}");
content = httpClient.AsyncRequest(); string content = httpClient.AsyncRequest();
_logger.LogInformation($"金蝶返回数据{content}"); //_logger.LogInformation($"金蝶返回数据{content}");
resData = JObject.Parse(content); JObject resData = JObject.Parse(content);
if (resData["success"].ToString().ToLower() != "true") if (resData["success"].ToString().ToLower() != "true")
return Result<List<ErpInventoryDto>>.ReFailure(ResultCodes.Erp_Inventory_Error); return Result<List<ErpInventoryDto>>.ReFailure(ResultCodes.Erp_Inventory_Error);
json = resData["data"].ToString(); string json = resData["data"].ToString();
datas = JsonConvert.DeserializeObject<List<ErpInventoryDto>>(json); var datas = JsonConvert.DeserializeObject<List<ErpInventoryDto>>(json);
list.AddRange(datas); list.AddRange(datas);
int num = Convert.ToInt32(resData["rowcount"]) / 10000;
for (int i = 1; i <= num; i++)
{
model.pageindex++;
httpClient.Content = JsonConvert.SerializeObject(Parameters);
content = httpClient.AsyncRequest();
//_logger.LogInformation($"金蝶返回数据{content}");
resData = JObject.Parse(content);
if (resData["success"].ToString().ToLower() != "true")
return Result<List<ErpInventoryDto>>.ReFailure(ResultCodes.Erp_Inventory_Error);
json = resData["data"].ToString();
datas = JsonConvert.DeserializeObject<List<ErpInventoryDto>>(json);
list.AddRange(datas);
}
} }
var blist = list.Where(w => w.Qty > 0 || w.BeforeQty > 0).ToList(); var blist = list.Where(w => w.Qty > 0 || w.BeforeQty > 0).ToList();