调整盘点结构

This commit is contained in:
18942506660
2023-12-07 11:31:06 +08:00
parent c5b8ec76be
commit 2086901e48
7 changed files with 112 additions and 128 deletions

View File

@@ -64,14 +64,36 @@ namespace WMS.Web.Domain.Services
/// <returns></returns>
public async Task<Result> Save(List<SaveTakeStockRequest> dto, LoginInDto loginInfo)
{
_logger.LogInformation($"盘点保存:{JsonConvert.SerializeObject(dto)} 盘点人:{loginInfo.UserInfo.StaffId}" );
List<TakeStock> list = _mapper.Map<List<TakeStock>>(dto);
foreach (var entity in list)
_logger.LogInformation($"盘点保存:{JsonConvert.SerializeObject(dto)} 盘点人:{loginInfo.UserInfo.StaffId}");
List<TakeStock> list = new List<TakeStock>();
var profitList = dto.Where(w => w.AfterQty >= w.BeforeQty).ToList();//盘盈
var lossList = dto.Where(w => w.AfterQty < w.BeforeQty).ToList();//盘亏
if (profitList.Count() > 0)
{
var subStock = await _transactionRepositories.GetSubUcStockAsync(entity.SubStockId, loginInfo.UserInfo.CompanyId);
entity.Create(loginInfo.UserInfo.StaffId);
entity.OrgCode = subStock?.ErpOrgCode;
entity.StockCode = subStock?.StockCode;
TakeStock takeStock = new TakeStock();
takeStock.Create(loginInfo.UserInfo.StaffId, TakeStockType.Profit);
takeStock.Details = _mapper.Map<List<TakeStockDetails>>(dto);
foreach(var d in takeStock.Details)
{
var subStock = await _transactionRepositories.GetSubUcStockAsync(d.SubStockId, loginInfo.UserInfo.CompanyId);
d.OrgCode = subStock?.ErpOrgCode;
d.StockCode = subStock?.StockCode;
}
list.Add(takeStock);
}
if (lossList.Count() > 0)
{
TakeStock takeStock = new TakeStock();
takeStock.Create(loginInfo.UserInfo.StaffId, TakeStockType.Loss);
takeStock.Details = _mapper.Map<List<TakeStockDetails>>(dto);
foreach (var d in takeStock.Details)
{
var subStock = await _transactionRepositories.GetSubUcStockAsync(d.SubStockId, loginInfo.UserInfo.CompanyId);
d.OrgCode = subStock?.ErpOrgCode;
d.StockCode = subStock?.StockCode;
}
list.Add(takeStock);
}
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
@@ -125,33 +147,38 @@ namespace WMS.Web.Domain.Services
{
//获取金蝶仓库仓位编码
//var stockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.StockId);
var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.SubStockId);
//var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.SubStockId);
var materials_result = await _erpService.BillQueryForMaterial();
var materials = materials_result.Data.ToList();
var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, entity.MaterialId);
var res = await _erpService.BillQueryForStock();
var resSub = await _erpService.BillQueryForSubStock();
var stock = res.Data.FirstOrDefault(f => f.Code == entity.StockCode);//需要根据单点code搜索
var subStock = resSub.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点code搜索
var stock = res.Data.FirstOrDefault(f => f.Code == entity.Details[0].StockCode);//需要根据单点code搜索
if (stock == null) return Result.ReFailure(ResultCodes.ErpStockNoData);
//组装dto
#region dto
//子仓库 ORICO_JD1000008 GD1000005 HD1000007 AD1000004
List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>();
detils.Add(new ErpTakeStockDetailsSaveDto()
foreach (var d in entity.Details)
{
FOwnerid = new ErpNumberDto(stock.OrgCode.ToString()),
FKeeperId = new ErpNumberDto(stock.OrgCode.ToString()),
MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, entity.MaterialId)),
UnitId = new ErpNumberDto(unitNumber), //物料带出来
StockId = new ErpNumberDto(stock.Code),
SubStockId = new ErpSubStockDto(stock.Code, resSub.Data.FirstOrDefault(f => f.Id == entity.Erp_SubStockId)?.Code),
BeforeQty = entity.BeforeQty,
AfterQty = entity.AfterQty,
FinalQty = entity.ResultType == TakeStockType.Profit ? entity.FinalQty : 0,
LossQty = entity.ResultType == TakeStockType.Loss ? entity.FinalQty : 0,
Fnote = entity.ResultType == TakeStockType.Loss ? "wms盘亏单同步" : "wms盘盈单同步"
});
var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, d.SubStockId);
var subStock = resSub.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点code搜索
var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId);
detils.Add(new ErpTakeStockDetailsSaveDto()
{
FOwnerid = new ErpNumberDto(stock.OrgCode.ToString()),
FKeeperId = new ErpNumberDto(stock.OrgCode.ToString()),
MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId)),
UnitId = new ErpNumberDto(unitNumber), //物料带出来
StockId = new ErpNumberDto(stock.Code),
SubStockId = new ErpSubStockDto(stock.Code, resSub.Data.FirstOrDefault(f => f.Id == d.Erp_SubStockId)?.Code),
BeforeQty = d.BeforeQty,
AfterQty = d.AfterQty,
FinalQty = entity.ResultType == TakeStockType.Profit ? d.FinalQty : 0,
LossQty = entity.ResultType == TakeStockType.Loss ? d.FinalQty : 0,
Fnote = entity.ResultType == TakeStockType.Loss ? "wms盘亏单同步" : "wms盘盈单同步"
});
}
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
{
BillNo = entity.BillNo,