即时库存调整
This commit is contained in:
@@ -2133,25 +2133,28 @@ namespace WMS.Web.Domain.Services.Public
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Result<decimal>> BillQueryForInventory(string materialId,string orgCode,string stockId)
|
||||
public async Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(int materialId, string orgCode, string stockCode)> request)
|
||||
{
|
||||
try
|
||||
{
|
||||
//1.先登录金蝶-拿到token
|
||||
var token_result = await this.Init();
|
||||
if (!token_result.IsSuccess)
|
||||
return Result<decimal>.ReFailure(token_result);
|
||||
return ResultList<ErpInventoryDto>.ReFailure(token_result);
|
||||
|
||||
|
||||
//3.获取金蝶采购订单:拼接参数和条件
|
||||
var query = new ErpBillQueryDto(token_result.Data);
|
||||
var param = new ErpBillQueryParamDto("STK_Inventory");
|
||||
param.FieldKeys = "FQTY,FBASEAVBQTY,FMATERIALID.FNumber,FSTOCKORGID.FNumber,FSTOCKID.FNumber";
|
||||
var param = new ErpBillQueryParamDto(FormIdParam.STK_Inventory.ToString());
|
||||
param.FieldKeys = "FBASEQTY,FMATERIALID,FSTOCKORGID.FNumber,FSTOCKID.FNumber";
|
||||
param.Limit = 100;
|
||||
//param.FilterString = $"FMATERIALID.FNumber='{materialId}' and FSTOCKORGID.FNumber='{orgCode}'";
|
||||
//param.FilterString = $"";
|
||||
param.FilterString = $"FMATERIALID.FNumber='{materialId}' and FSTOCKORGID.FNumber='{orgCode}' and FSTOCKID.FNumber='{stockId}'";
|
||||
|
||||
for (int i = 0; i < request.Count(); i++)
|
||||
{
|
||||
if(i==0)
|
||||
param.FilterString = $"(FMATERIALID={request[0].materialId} and FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}')";
|
||||
else
|
||||
param.FilterString += $" or (FMATERIALID={request[i].materialId} and FSTOCKORGID.FNumber='{request[i].orgCode}' and FSTOCKID.FNumber='{request[i].stockCode}')";
|
||||
}
|
||||
query.Data = JsonConvert.SerializeObject(param);
|
||||
var json = JsonConvert.SerializeObject(query);
|
||||
|
||||
@@ -2159,12 +2162,31 @@ namespace WMS.Web.Domain.Services.Public
|
||||
var result_json = await _client.ExecuteBillQueryAsync(json);
|
||||
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
|
||||
|
||||
|
||||
return Result<decimal>.ReSuccess(0);
|
||||
var erp_list = new List<ErpInventoryDto>();
|
||||
foreach (var item in result)
|
||||
{
|
||||
|
||||
var lis = erp_list.FirstOrDefault(f => f.MaterialId == Convert.ToInt32(item[1])
|
||||
&& f.OrgCode.Equals(item[2])
|
||||
&& f.StockCode.Equals(item[3]));
|
||||
|
||||
if (lis == null)
|
||||
{
|
||||
lis.Qty = Convert.ToInt32(item[0]);
|
||||
lis.MaterialId = Convert.ToInt32(item[1]);
|
||||
lis.OrgCode = item[2];
|
||||
lis.StockCode = item[3];
|
||||
erp_list.Add(lis);
|
||||
}
|
||||
else
|
||||
lis.Qty = lis.Qty + Convert.ToInt32(item[0]);
|
||||
}
|
||||
|
||||
return ResultList<ErpInventoryDto>.ReSuccess(erp_list);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return Result<decimal>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
||||
return ResultList<ErpInventoryDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user