修复bug

This commit is contained in:
18942506660
2024-01-03 10:13:32 +08:00
parent cadf8dbab6
commit 32418f4ed1
9 changed files with 35 additions and 15 deletions

View File

@@ -147,7 +147,7 @@ namespace WMS.Web.Domain.IService.Public
/// 及时库存
/// </summary>
/// <returns></returns>
Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode)> request);
Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode, int subStockId)> request);
//同步数据(保存提交审核)
Task<Result<string>> Save<T>(T dto, string formId);
//提交

View File

@@ -2133,7 +2133,7 @@ namespace WMS.Web.Domain.Services.Public
}
}
public async Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode)> request)
public async Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode,int subStockId)> request)
{
try
{
@@ -2146,16 +2146,22 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_Inventory.ToString());
param.FieldKeys = "FBASEQTY,FMATERIALID.FNumber,FSTOCKORGID.FNumber,FSTOCKID.FNumber";
param.FieldKeys = "FBASEQTY,FMATERIALID.FNumber,FSTOCKORGID.FNumber,FSTOCKID.FNumber,FSTOCKLOCID";
param.Limit = 100;
//param.FilterString = $"FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}'";
//param.FilterString = $"FMATERIALID.FNumber='G01-17-556547'";
//param.FilterString = $"";
for (int i = 0; i < request.Count(); i++)
{
if (i == 0)
param.FilterString = $"(FMATERIALID.FNumber='{request[0].materialNumber}' and FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}')";
{
param.FilterString = $"(FMATERIALID.FNumber='{request[0].materialNumber}' and FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}'";
param.FilterString += request[0].subStockId == 0 ? ")" : $" and FSTOCKLOCID={request[0].subStockId})";
}
else
param.FilterString += $" or (FMATERIALID.FNumber='{request[i].materialNumber}' and FSTOCKORGID.FNumber='{request[i].orgCode}' and FSTOCKID.FNumber='{request[i].stockCode}')";
{
param.FilterString += $" or (FMATERIALID.FNumber='{request[i].materialNumber}' and FSTOCKORGID.FNumber='{request[i].orgCode}' and FSTOCKID.FNumber='{request[i].stockCode}'";
param.FilterString += request[i].subStockId == 0 ? ")" : $" and FSTOCKLOCID={request[i].subStockId})";
}
}
query.Data = JsonConvert.SerializeObject(param);
var json = JsonConvert.SerializeObject(query);
@@ -2178,6 +2184,7 @@ namespace WMS.Web.Domain.Services.Public
lis.MaterialNumber = item[1];
lis.OrgCode = item[2];
lis.StockCode = item[3];
lis.Erp_SubStockId =Convert.ToInt32(item[4]);
erp_list.Add(lis);
}
else

View File

@@ -204,10 +204,12 @@ namespace WMS.Web.Domain.Services
if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError);
var materials = materials_result.Data.ToList();
List<(string materialNumber, string orgCode, string stockCode)> requestInventory = new List<(string materialNumber, string orgCode, string stockCode)>();
var subs = await _erpService.BillQueryForSubStock();
List<(string materialNumber, string orgCode, string stockCode, int subStockId)> requestInventory = new List<(string materialNumber, string orgCode, string stockCode, int subStockId)>();
foreach (var d in entity.Details)
{
requestInventory.Add((_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId), d.OrgCode, d.StockCode));
int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0;
requestInventory.Add((_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId), d.OrgCode, d.StockCode, subStockId));
};
var res_s = await sc_erpService.BillQueryForInventory(requestInventory);
if (!res_s.IsSuccess)
@@ -221,8 +223,10 @@ namespace WMS.Web.Domain.Services
List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>();
foreach (var d in entity.Details)
{
int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0;
var number = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId);
var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialNumber == number && f.StockCode == d.StockCode && f.OrgCode == d.OrgCode);
var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialNumber == number && f.StockCode == d.StockCode
&& f.OrgCode == d.OrgCode && f.Erp_SubStockId == subStockId);
decimal qty = erpInventory?.Qty ?? 0;
var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId);
detils.Add(new ErpTakeStockDetailsSaveDto()