调整盘点结构
This commit is contained in:
@@ -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_JD:1000008 GD:1000005 HD:1000007 AD:1000004
|
||||
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,
|
||||
|
||||
Reference in New Issue
Block a user