|
|
@ -22,16 +22,19 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou |
|
|
|
private readonly IBalanceAppService _balanceAppService; |
|
|
|
private readonly ICountJobRepository _repository; |
|
|
|
private readonly ICountNoteRepository _noteRepository; |
|
|
|
private readonly ICountPlanRepository _planRepository; |
|
|
|
private readonly ICountAdjustRequestRepository _countAdjustRequestRepository; |
|
|
|
public CountJobManager( |
|
|
|
ICountJobRepository repository, |
|
|
|
IBalanceAppService balanceAppService, |
|
|
|
ICountNoteRepository noteRepository, |
|
|
|
ICountPlanRepository planRepository, |
|
|
|
ICountAdjustRequestRepository countAdjustRequestRepository |
|
|
|
) : base(repository) |
|
|
|
|
|
|
|
{ |
|
|
|
_noteRepository = noteRepository; |
|
|
|
_planRepository = planRepository; |
|
|
|
_balanceAppService = balanceAppService; |
|
|
|
_repository = repository; |
|
|
|
_countAdjustRequestRepository= countAdjustRequestRepository; |
|
|
@ -304,31 +307,49 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou |
|
|
|
{ |
|
|
|
decimal countCount = depDetail.CountQty; |
|
|
|
var detail = entity.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode && r.LocationCode == depDetail.LocationCode && r.InventoryStage == entity.InventoryStage&&r.Lot==depDetail.Lot); |
|
|
|
var oldDepDetail = entity.DepDetails.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode && r.LocationCode == depDetail.LocationCode && r.InventoryStage == entity.InventoryStage && r.Lot == depDetail.Lot); |
|
|
|
//var oldDepDetail = entity.DepDetails.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode && r.LocationCode == depDetail.LocationCode && r.InventoryStage == entity.InventoryStage && r.Lot == depDetail.Lot);
|
|
|
|
var oldDepDetail = entity.DepDetails.FirstOrDefault(r => r.Id == new Guid(depDetail.Id.ToString())); |
|
|
|
if (depDetail.IsDelete) |
|
|
|
{ |
|
|
|
countCount = -oldDepDetail.CountQty; |
|
|
|
entity.DepDetails.Remove(oldDepDetail); |
|
|
|
|
|
|
|
//移除的扫描记录盘点数量与计划中盘点数量一致,移除计划中的物料
|
|
|
|
var planDB = await _planRepository.FindAsync(r => r.Number == input.CountPlanNumber).ConfigureAwait(false); |
|
|
|
if (planDB != null) |
|
|
|
{ |
|
|
|
var planDetailDB = planDB.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode && r.LocationCode == depDetail.LocationCode && r.Lot == depDetail.Lot && r.Status == depDetail.Status); |
|
|
|
if (planDetailDB != null) |
|
|
|
{ |
|
|
|
if(planDetailDB.FinalCountQty == oldDepDetail.CountQty) |
|
|
|
{ |
|
|
|
planDB.Details.Remove(planDetailDB); |
|
|
|
await _planRepository.UpdateAsync(planDB).ConfigureAwait(false); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if (oldDepDetail != null && depDetail.Id == oldDepDetail.Id) |
|
|
|
{ |
|
|
|
countCount = depDetail.CountQty - oldDepDetail.CountQty; |
|
|
|
entity.DepDetails.Remove(oldDepDetail); |
|
|
|
oldDepDetail.CountQty = depDetail.CountQty; |
|
|
|
} |
|
|
|
|
|
|
|
var jobDepDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDependentDetail>(depDetail); |
|
|
|
var number = entity.Number; |
|
|
|
jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number); |
|
|
|
jobDepDetail.CountLabel = GuidGenerator.Create().ToString(); |
|
|
|
entity.DepDetails.Add(jobDepDetail); |
|
|
|
if (detail != null) |
|
|
|
else |
|
|
|
{ |
|
|
|
jobDepDetail.ArriveDate = detail.ArriveDate; |
|
|
|
jobDepDetail.ProduceDate = detail.ProduceDate; |
|
|
|
jobDepDetail.ExpireDate = detail.ExpireDate; |
|
|
|
} |
|
|
|
var jobDepDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDependentDetail>(depDetail); |
|
|
|
var number = entity.Number; |
|
|
|
jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number); |
|
|
|
jobDepDetail.CountLabel = GuidGenerator.Create().ToString(); |
|
|
|
entity.DepDetails.Add(jobDepDetail); |
|
|
|
if (detail != null) |
|
|
|
{ |
|
|
|
jobDepDetail.ArriveDate = detail.ArriveDate; |
|
|
|
jobDepDetail.ProduceDate = detail.ProduceDate; |
|
|
|
jobDepDetail.ExpireDate = detail.ExpireDate; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (detail == null) |
|
|
|
{ |
|
|
|