Browse Source

盘点修改

dev_DY_CC
lvzb 11 months ago
parent
commit
fe0946e576
  1. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/ICountPlanAppService.cs
  2. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Plans/CountPlans/CountPlanAppService.cs
  3. 52
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs
  4. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/ICountPlanManager.cs
  5. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/CountJobEventHandler.cs

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/ICountPlanAppService.cs

@ -33,4 +33,5 @@ public interface ICountPlanAppService
Task ChangeStageAsync(Guid id, List<string> detailIdList, EnumCountStage stage);
Task ResetStatusByNumberAsync(string number);
Task NewResetStatusByNumberAsync(string number, List<string> locationCodes);
}

13
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Plans/CountPlans/CountPlanAppService.cs

@ -146,6 +146,19 @@ public class CountPlanAppService :
{
await _countPlanManager.ResetStatusByNumberAsync(number).ConfigureAwait(false);
}
// <summary>
// 更新计划状态
// </summary>
// <param name="id"></param>
// <returns></returns>
[HttpPost("new-reset-by-number")]
public virtual async Task NewResetStatusByNumberAsync(string number,List<string>locationCodes)
{
await _countPlanManager.ResetStatusByNumberAsync1(number, locationCodes).ConfigureAwait(false);
}
[HttpPost("check-status")]
public virtual async Task CheckStatusAsync(string number)
{

52
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs

@ -313,6 +313,58 @@ public class CountPlanManager : SfsStoreRequestManagerBase<CountPlan, CountPlanD
p.DetailStatus = EnumCountStatus.New;
});
}
/// <summary>
/// 根据plannumber更新主表状态和子表状态
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public virtual async Task ResetStatusByNumberAsync1(string number,List<string> locationCodes)
{
var entity = await Repository.GetAsync(r => r.Number == number).ConfigureAwait(false);
entity.RequestStatus = EnumRequestStatus.Handling;
entity.InventoryStage++;
switch (entity.CountMethod)
{
case EnumCountMethod.ByLocation:
{
//按库位拆分成多个盘点任务
entity.Details.Where(r=> locationCodes.Contains(r.LocationCode)).ToList().ForEach(p =>
{
p.FirstCountQty = 0;
p.FinalCountQty = 0;
p.DetailStatus = EnumCountStatus.New;
});
break;
}
case EnumCountMethod.ByItem:
{
//按物品生成多个盘点任务
entity.Details.ForEach(p =>
{
p.FirstCountQty = 0;
p.FinalCountQty = 0;
p.DetailStatus = EnumCountStatus.New;
});
break;
}
case EnumCountMethod.ByLocationAndItem:
{
//按物品和库位生成多个盘点任务
entity.Details.ForEach(p =>
{
p.FirstCountQty = 0;
p.FinalCountQty = 0;
p.DetailStatus = EnumCountStatus.New;
});
break;
}
case EnumCountMethod.None:
default:
throw new UserFriendlyException($"盘点任务生成失败;原因:盘点方式错误,将执行回滚操作!");
}
}
/// <summary>
/// job执行后更新计划
/// </summary>

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/ICountPlanManager.cs

@ -22,4 +22,5 @@ public interface ICountPlanManager : ISfsStoreRequestManager<CountPlan, CountPla
/// <returns></returns>
Task CompleteByJobAsync(CountPlan entity);
Task ResetStatusByNumberAsync(string number);
Task ResetStatusByNumberAsync1(string number, List<string> locationCodes);
}

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/CountJobEventHandler.cs

@ -50,7 +50,10 @@ public class CountJobEventHandler :
var entity = eventData.Entity.First();
if (!string.IsNullOrEmpty(entity.CountPlanNumber))
{
await _countPlanAppService.ResetStatusByNumberAsync(entity.CountPlanNumber).ConfigureAwait(false);
// await _countPlanAppService.ResetStatusByNumberAsync(entity.CountPlanNumber).ConfigureAwait(false);
var locationCodes = eventData.Entity.SelectMany(r => r.Details).Select(p => p.LocationCode).Distinct().ToList();
await _countPlanAppService.NewResetStatusByNumberAsync(entity.CountPlanNumber, locationCodes).ConfigureAwait(false);
}
}
private async Task<CountPlanEditInput> BuildCountPlanJobUpdateDTO(CountJob entity)

Loading…
Cancel
Save