调整物料和仓位编码

This commit is contained in:
18942506660
2024-03-18 09:34:40 +08:00
parent c0520b5cd3
commit 92d19e6a21
14 changed files with 90 additions and 39 deletions

View File

@@ -172,7 +172,7 @@ namespace WMS.Web.Domain.Services
entity.SrcSubStockCode = subStock_s?.Code ?? "";
if (subStock != null)
{
entity.DestSubStockId = dt.SubStockId;
//entity.DestSubStockId = dt.SubStockId;
entity.DestBoxOrgCode = subStock.ErpOrgCode;
entity.DestStockCode = subStock.StockCode;
entity.DestSubStockCode = subStock.Code;
@@ -278,9 +278,9 @@ namespace WMS.Web.Domain.Services
List<MoveBoxRecord> entityList = new List<MoveBoxRecord>();
foreach (var d in dto)
{
var subStock = await _basbicsRepositories.GetSubUcStockAsync(d.SubStockId, loginInfo.UserInfo.CompanyId);
var subStock = await _basbicsRepositories.GetSubUcStockAsync(d.SubStockCode, loginInfo.UserInfo.CompanyId);
var entity = new MoveBoxRecord();
entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.Qty, subStock?.ErpOrgCode, subStock?.StockCode, d.SubStockId, loginInfo.UserInfo.StaffId, subStock?.Code);
entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.Qty, subStock?.ErpOrgCode, d.SubStockCode, loginInfo.UserInfo.StaffId, subStock?.Code);
entity.Details = d.Details.Select(s => new MoveBoxRecordDetails()
{
MaterialNumber = s.MaterialNumber,

View File

@@ -134,7 +134,7 @@ namespace WMS.Web.Domain.Services
foreach (var b in boxInventoryDetails)
{
var num = boxInventoryDetails.Where(w => w.MaterialId == b.MaterialId).Sum(s => s.Qty);
var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == b.MaterialId);
var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == b.MaterialNumber);
if (taskDetail == null) return Result.ReFailure(ResultCodes.BoxOutStockTaskMaterialError);
//箱子里该物料的总数量大于出库单(应出库数量-已出库数量) 不能出库
if (num > (taskDetail.AccruedQty - taskDetail.RealityQty))
@@ -144,7 +144,7 @@ namespace WMS.Web.Domain.Services
if (box == null) return Result.ReFailure(ResultCodes.BoxNoData);
var dtod = _mapper.Map<SaveOutStockDetailsRequest>(b);
dtod.BoxId = box.BoxId;
dtod.SubStockId = box.SubStockId;
dtod.SubStockCode = box.SubStockCode;
dto.Details.Add(dtod);
}
}

View File

@@ -114,7 +114,7 @@ namespace WMS.Web.Domain.Services
foreach (var erp in erps)
{
//仓库不同 拆分成不同的
var detail = outStockTask.Details.FirstOrDefault(w => w.MaterialId == erp.MaterialId);
var detail = outStockTask.Details.FirstOrDefault(w => w.MaterialNumber == erp.MaterialNumber);
if (detail == null)
{
//添加一条物料明细
@@ -167,11 +167,11 @@ namespace WMS.Web.Domain.Services
entity.Create((OutStockType)e.Type, e.StockCode, e.OrgCode, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime);
//找到当前对应来源单据编号的集合数据
var mIds = eList.GroupBy(g => g.MaterialId).Select(s => s.Key).ToList();
var mIds = eList.GroupBy(g => g.MaterialNumber).Select(s => s.Key).ToList();
//给到dto的实体明细中
foreach (var mid in mIds)
{
var emList = eList.Where(w => w.MaterialId == mid).ToList();
var emList = eList.Where(w => w.MaterialNumber == mid).ToList();
var detail = _mapper.Map<OutStockTaskDetails>(emList.First());
var erpDetail = _mapper.Map<List<OutStockTaskErpDetails>>(emList);
detail.ErpDetails.AddRange(erpDetail);
@@ -205,7 +205,7 @@ namespace WMS.Web.Domain.Services
var erp_o = erp_list.Where(w => w.SourceBillNo == ed.SourceBillNo).ToList();
if (erp_o.Count() == 0) continue;
var erp_d = erp_list.Where(w => w.MaterialId == d.MaterialId && ed.Erp_DetailId == w.Erp_DetailId).ToList();
var erp_d = erp_list.Where(w => w.MaterialNumber == d.MaterialNumber && ed.Erp_DetailId == w.Erp_DetailId).ToList();
if (erp_d.Count() == 0)
{
//金蝶删除明细数据后 wms对应数据修改为0

View File

@@ -161,7 +161,20 @@ namespace WMS.Web.Domain.Services.Public
}
return mat.BaseUnitName;
}
public string GetMaterialUnitName(List<ErpMaterialDto> erpMaterials, string materialNumber)
{
if (erpMaterials == null || erpMaterials.Count == 0)
return "";
var mat = erpMaterials.Where(x => x.MaterialNumber == materialNumber).FirstOrDefault();
if (mat == null)
{
var result = _erpService.BillQueryForMaterial(materialNumber).GetAwaiter().GetResult();
if (!result.IsSuccess)
return "";
return result.Data == null ? "" : result.Data.BaseUnitName;
}
return mat.BaseUnitName;
}
/// <summary>
/// 获取物料的条码
/// </summary>
@@ -244,7 +257,26 @@ namespace WMS.Web.Domain.Services.Public
}
return mat.BaseUnitNumber;
}
/// <summary>
/// 获取物料基本单位编码
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialNumber"></param>
/// <returns></returns>
public string GetMaterialUnitNumber(List<ErpMaterialDto> erpMaterials, string materialNumber)
{
if (erpMaterials == null || erpMaterials.Count == 0)
return "";
var mat = erpMaterials.Where(x => x.MaterialNumber == materialNumber).FirstOrDefault();
if (mat == null)
{
var result = _erpService.BillQueryForMaterial(materialNumber).GetAwaiter().GetResult();
if (!result.IsSuccess)
return "";
return result.Data == null ? "" : result.Data.BaseUnitNumber;
}
return mat.BaseUnitNumber;
}
/// <summary>
/// 获取组织名称
/// </summary>

View File

@@ -69,7 +69,7 @@ namespace WMS.Web.Domain.Services
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
MaterialId = entity.MaterialId,
MaterialNumber = entity.MaterialNumber,
SerialNumber = entity.SerialNumber,
OrgId = box.OrgId,
SupplierId = box.SupplierId,
@@ -134,7 +134,7 @@ namespace WMS.Web.Domain.Services
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
MaterialId = entity.MaterialId,
MaterialNumber = entity.MaterialNumber,
SerialNumber = entity.SerialNumber,
OrgId = box.OrgId,
SupplierId = box.SupplierId,
@@ -192,15 +192,15 @@ namespace WMS.Web.Domain.Services
foreach (var entity in entityList)
{
var box = boxList.FirstOrDefault(f => f.Id == entity.BoxId);
var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber);
if (outstockDetail == null) continue;
//修改序列号和箱绑定关系
entity.OutStock(outStock, entity.MaterialId);
entity.OutStock(outStock, entity.MaterialNumber);
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
MaterialId = entity.MaterialId,
MaterialNumber = entity.MaterialNumber,
SerialNumber = entity.SerialNumber,
OrgId = box.OrgId,
SupplierId = box.SupplierId,
@@ -211,7 +211,7 @@ namespace WMS.Web.Domain.Services
};
if (outStock.Type == OutStockType.Sal)
{
var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
var detail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber);
var res_c = await _erpService.BillQueryForCustomer();
var customer = res_c.Data.FirstOrDefault(f => f.Id == outStock.ReceiptCustomerId);
op.Remark += "\r\n" + "销售订单号:" + string.Join(",", detail.ErpDetails.Select(s => s.SaleBillNo));
@@ -321,7 +321,7 @@ namespace WMS.Web.Domain.Services
{
var boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0;
var box = boxList.FirstOrDefault(f => f.Id == boxId);
var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber);
var subStock = _singleDataService.GetSingleData(SingleAction.SubStocks, loginInfo.UserInfo.CompanyId, inStock.SubStockId);
//修改序列号和箱绑定关系
entity.InStock(instockDetail.SourceBillNo, inStock.Type);
@@ -330,7 +330,7 @@ namespace WMS.Web.Domain.Services
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
MaterialId = entity.MaterialId,
MaterialNumber = entity.MaterialNumber,
SerialNumber = entity.SerialNumber,
OrgId = box?.OrgId ?? 0,
SupplierId = box?.SupplierId ?? 0,
@@ -397,7 +397,7 @@ namespace WMS.Web.Domain.Services
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
MaterialId = entity.MaterialId,
MaterialNumber = entity.MaterialNumber,
SerialNumber = entity.SerialNumber,
OrgId = box.OrgId,
SupplierId = box.SupplierId,
@@ -457,17 +457,17 @@ namespace WMS.Web.Domain.Services
if (takeStockDetail == null) continue;
var box = boxList.FirstOrDefault(f => f.Id == takeStockDetail.BoxId);
var s_entity = entityList.FirstOrDefault(f => f.SerialNumber.Equals(s));
if (box != null && box.Details.FirstOrDefault(f => f.MaterialId == takeStockDetail.MaterialId) == null)
if (box != null && box.Details.FirstOrDefault(f => f.MaterialNumber == takeStockDetail.MaterialNumber) == null)
{
//如果这个物料不存在箱箱信息 添加进去
box.TakeStock(takeStockDetail.MaterialId, takeStockDetail.AfterQty);
box.TakeStock(takeStockDetail.MaterialNumber, takeStockDetail.AfterQty);
box_New_List.Add(box);
}
if (s_entity == null)
{
//序列号
SerialNumbers s_new = new SerialNumbers(s, takeStockDetail.MaterialId, takeStockDetail.Id, 0, "", DateTime.Now, DateTime.Now);
SerialNumbers s_new = new SerialNumbers(s, takeStockDetail.MaterialNumber, takeStockDetail.Id, 0, "", DateTime.Now, DateTime.Now);
sList.Add(s_new);
}
else
@@ -479,7 +479,7 @@ namespace WMS.Web.Domain.Services
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
MaterialId = takeStockDetail.MaterialId,
MaterialNumber = takeStockDetail.MaterialNumber,
SerialNumber = s,
OrgId = box.OrgId,
SupplierId = box.SupplierId,

View File

@@ -243,7 +243,7 @@ namespace WMS.Web.Domain.Services
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);
var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialNumber);
detils.Add(new ErpTakeStockDetailsSaveDto()
{
FOwnerid = new ErpNumberDto(d.OrgCode),