修改了bug

This commit is contained in:
2026-08-06 16:24:56 +08:00
parent 538ff8932b
commit 658ed30f8b
4 changed files with 50 additions and 10 deletions

View File

@@ -82,6 +82,9 @@ namespace WMS.Web.Domain.Infrastructure
/// <returns></returns>
Task<List<int>> GetInstockBox(int taskId);
Task<List<InStock>> GetInstockBoxDetailsByBoxId(List<int> ids);
/// <summary>
/// 获取最新的erp明细
/// </summary>

View File

@@ -18,6 +18,7 @@ using WMS.Web.Core.Dto.Erp.Org;
using WMS.Web.Core.Dto.Erp.OutStock;
using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Dto.OutStockTask;
using WMS.Web.Core.Dto.InStockTask;
using WMS.Web.Core.Help;
using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Entitys;
@@ -41,20 +42,22 @@ namespace WMS.Web.Domain.Services
private readonly IBasicsRepositories _transactionRepositories;
private IOutStockRepositories _outStockRepositories;
private IOutStockTaskRepositories _outStockTaskRepositories;
private IInStockTaskRepositories _inStockTaskRepositories;
private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories;
private readonly RedisClientService _redisClientService;
private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
private readonly ISingleDataService _singleDataService;
private IBoxRepositories _boxRepositories;
private IInStockRepositories _inStockRepositories;
private readonly IExportExcelService _exportExcelService;
private readonly IServiceScopeFactory _serviceScopeFactory;
private readonly ILogger<OutStockTaskService> _logger;
public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService,
IBasicsRepositories transactionRepositories,
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories,
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IInStockTaskRepositories inStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories,
RedisClientService redisClientService, IErpBasicDataExtendService erpBasicDataExtendService,
ISingleDataService singleDataService, IBoxRepositories boxRepositories, IExportExcelService exportExcelService, IServiceScopeFactory serviceScopeFactory,
ISingleDataService singleDataService, IBoxRepositories boxRepositories, IInStockRepositories inStockRepositories, IExportExcelService exportExcelService, IServiceScopeFactory serviceScopeFactory,
ILogger<OutStockTaskService> logger)
{
_mapper = mapper;
@@ -63,11 +66,13 @@ namespace WMS.Web.Domain.Services
_transactionRepositories = transactionRepositories;
_outStockRepositories = outStockRepositories;
_outStockTaskRepositories = outStockTaskRepositories;
_inStockTaskRepositories = inStockTaskRepositories;
_erpOpsSyncDateRepositories = erpOpsSyncDateRepositories;
_redisClientService = redisClientService;
_erpBasicDataExtendService = erpBasicDataExtendService;
_singleDataService = singleDataService;
_boxRepositories = boxRepositories;
_inStockRepositories = inStockRepositories;
_exportExcelService = exportExcelService;
_serviceScopeFactory = serviceScopeFactory;
_logger = logger;
@@ -599,6 +604,7 @@ namespace WMS.Web.Domain.Services
_outStockRepositories = scope.ServiceProvider.GetRequiredService<IOutStockRepositories>();
_erpService = scope.ServiceProvider.GetRequiredService<IErpService>();
_boxRepositories = scope.ServiceProvider.GetRequiredService<IBoxRepositories>();
_inStockRepositories = scope.ServiceProvider.GetRequiredService<IInStockRepositories>();
}
var entity = await _outStockTaskRepositories.Get(id);
@@ -607,6 +613,9 @@ namespace WMS.Web.Domain.Services
//获取任务单对应出库信息
var outStockList = await _outStockRepositories.GetByTaskId(id);
//取组织
var org_result = await _erpService.BillQueryForOrg();
List<ErpOrgDto> orgs = new List<ErpOrgDto>();
@@ -628,10 +637,7 @@ namespace WMS.Web.Domain.Services
if (customer_result.IsSuccess)
customers = customer_result.Data.ToList();
var materials_result = await _erpService.BillQueryForMaterial();
List<ErpMaterialDto> materials = new List<ErpMaterialDto>();
if (materials_result.IsSuccess)
materials = materials_result.Data.ToList();
OutStockTaskInfoResponse response = new OutStockTaskInfoResponse()
{
@@ -650,11 +656,24 @@ namespace WMS.Web.Domain.Services
var details = outStockList.SelectMany(s => s.Details).ToList();
var boxDetails = outStockList.SelectMany(s => s.Details).SelectMany(s => s.BoxsDetails).ToList();
var boxList = await _boxRepositories.GetEntityList(boxDetails.Select(s => s.BoxId).ToList());
//取得对应入库
var inStockList= await _inStockRepositories.GetListBy(boxDetails.Select(s => s.BoxId).ToList());
var materials_result = await _erpService.BillQueryForMaterial();
List<ErpMaterialDto> materials = new List<ErpMaterialDto>();
if (materials_result.IsSuccess)
materials = materials_result.Data.ToList();
foreach (var b in boxDetails)
{
var detail = details.FirstOrDefault(f => f.Id == b.DetailId);
var outStock = outStockList.FirstOrDefault(f => f.Id == detail.Fid);
// var inStock= inStockList.FirstOrDefault(f=>f.)
// var inStockList = await _inStockRepositories.GetInstockBoxDetailsByBoxId(b.BoxId);
//获取箱子对应入库信息
var m = materials.FirstOrDefault(f => f.MaterialNumber.Equals(detail.MaterialNumber));
//var postionList = await _boxRepositories.Getuc_warehouse_position(boxDetails.Select(s => s.SubStockCode).ToList());
@@ -669,8 +688,8 @@ namespace WMS.Web.Domain.Services
BoxHigh = b.BoxHigh,
BoxWeight = b.BoxWeight,
Qty = b.Qty,
position_code = b.SubStockCode,
position = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, b.SubStockCode+outStock.StockCode + outStock.OrgCode),
position_code = inStockList.FirstOrDefault(f => f.Details.Where(w => detail.BoxsDetails.Select(s => s.BoxId).Contains(w.BoxId)).Any())?.SubStockCode ?? "",//b.SubStockCode,
position = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, (inStockList.FirstOrDefault(f => f.Details.Where(w => detail.BoxsDetails.Select(s => s.BoxId).Contains(w.BoxId)).Any())?.SubStockCode ?? "") + outStock.StockCode + outStock.OrgCode),
//shelfSpace = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, x.order.SubStockCode + x.order.StockCode + x.order.OrgCode),
// position = postionList.FirstOrDefault(f=>f.position_code==b.SubStockCode)?.position??"",
SerialNumbers = string.Join(",", b.SerialNumbers),

View File

@@ -290,6 +290,24 @@ namespace WMS.Web.Repositories
return await _context.InStockDetails.Where(x => x.TaskId == taskId).Select(x => x.BoxId).ToListAsync();
}
/// <summary>
/// 根据任务单Id获取
/// </summary>
/// <param name="taskId"></param>
/// <returns></returns>
public async Task<List<InStock>> GetInstockBoxDetailsByBoxId(List<int> ids)
{
var res = await _context.Instock
.Include(s => s.Details)
.Where(x => ids.Contains(x.Id))
.ToListAsync();
return res.Clone();
}
/// <summary>
/// 列表-分页
/// </summary>

View File

@@ -211,8 +211,8 @@ namespace WMS.Web.Repositories
shelfSpace = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, x.order.SubStockCode + x.order.StockCode + x.order.OrgCode),
//shelfSpace = _boxRepositories.Getuc_warehouse_position(postionList, x.order.SubStockCode),
Shelfer = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId),
Receiver = "",
ReceiveTime = "",
Receiver = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId),
ReceiveTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
SerialNumbers = (string.Join(",", x.detail.SerialNumbers).TrimEnd(','))
}).ToListAsync();