|
|
|
|
@@ -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),
|
|
|
|
|
|