Browse Source

Merge branch 'dev_DY_CC' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_DY_CC

dev_DY_CC
郑勃旭 1 year ago
parent
commit
c34263084a
  1. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs
  2. 5
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs
  3. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/IBomManager.cs
  4. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJob.cs
  5. 37
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs
  6. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CountPlanEventHandler.cs

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs

@ -108,7 +108,7 @@ public class BomAppService :
[HttpGet("get-bom-tree-by-code")] [HttpGet("get-bom-tree-by-code")]
public virtual async Task<List<BomDTO>> GetBomTreeByCodeAsync(string productCode) public virtual async Task<List<BomDTO>> GetBomTreeByCodeAsync(string productCode)
{ {
var entities = await _bomManager.GetAllItemByCode(productCode).ConfigureAwait(false); var entities = await _bomManager.GetAllItemByCode(productCode,GuidGenerator.Create()).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities); var dtos = ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities);

5
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs

@ -379,14 +379,15 @@ public class BomManager : DomainService, IBomManager
/// </summary> /// </summary>
/// <param name="productCode"></param> /// <param name="productCode"></param>
/// <returns></returns> /// <returns></returns>
public virtual async Task<List<Bom>> GetAllItemByCode(string productCode) public virtual async Task<List<Bom>> GetAllItemByCode(string productCode,Guid id)
{ {
List<Bom> boms = new List<Bom>(); List<Bom> boms = new List<Bom>();
var lst = await _repository.GetListAsync(p => p.Product == productCode).ConfigureAwait(false); var lst = await _repository.GetListAsync(p => p.Product == productCode).ConfigureAwait(false);
foreach (var bom in lst) foreach (var bom in lst)
{ {
bom.Remark = id.ToString();
boms.Add(bom); boms.Add(bom);
var results= await GetAllItemByCode(bom.Component).ConfigureAwait(false); var results= await GetAllItemByCode(bom.Component,bom.Id).ConfigureAwait(false);
boms.AddRange(results); boms.AddRange(results);
} }
return boms; return boms;

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/IBomManager.cs

@ -42,7 +42,7 @@ public interface IBomManager : IDomainService, IBulkImportService<Bom>
/// <param name="productNum">总成数量</param> /// <param name="productNum">总成数量</param>
/// <returns></returns> /// <returns></returns>
Task<List<Bom>> GetMaterialTotalQtyAsync(string productCode, int productNum); Task<List<Bom>> GetMaterialTotalQtyAsync(string productCode, int productNum);
Task<List<Bom>> GetAllItemByCode(string productCode);
Task<List<BomComponent>> GetSubcomponentsRecursiveList(List<BomComponent> p_lst, EnumBomSelectedType p_type); Task<List<BomComponent>> GetSubcomponentsRecursiveList(List<BomComponent> p_lst, EnumBomSelectedType p_type);
Task<List<Bom>> GetAllItemByCode(string productCode, Guid id);
} }

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJob.cs

@ -96,7 +96,7 @@ public class CountJob : SfsJobAggregateRootBase<CountJobDetail>
detail.ExpireDate = expireDate; detail.ExpireDate = expireDate;
detail.LocationCode = locationCode; detail.LocationCode = locationCode;
detail.CountQty = detail.CountQty+qty; detail.CountQty = qty;
detail.CountTime = time; detail.CountTime = time;
detail.CountOperator = oper; detail.CountOperator = oper;
detail.CountDescription = desc; detail.CountDescription = desc;

37
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs

@ -118,22 +118,32 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou
} }
private async Task SetDetailsAsync(CountJob input, CountJob entity) private async Task SetDetailsAsync(CountJob input, CountJob entity)
{ {
foreach (var depDetail in input.DepDetails) //将任务里所有可盘数量置为0
input.Details.ForEach(r =>
{ {
var inputDetail = input.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode); r.CountQty = 0;
if (inputDetail != null)
{ });
inputDetail.CountQty += depDetail.CountQty; //清除之前的扫描明细
} entity.DepDetails.RemoveAll(r=>r.InventoryStage==entity.InventoryStage);
else //遍历扫描明细
foreach (var depDetail in input.DepDetails.Where(r=>r.InventoryStage==entity.InventoryStage))
{
var inputDetail = input.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode&&r.LocationCode == depDetail.LocationCode&&r.InventoryStage == entity.InventoryStage);
if (inputDetail == null)
{ {
var jobDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDetail>(depDetail); var jobDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDetail>(depDetail);
jobDetail.InventoryQty = 0;
var detailNumber = await GetNumber().ConfigureAwait(false); var detailNumber = await GetNumber().ConfigureAwait(false);
jobDetail.SetIdAndNumber(GuidGenerator, entity.Id, detailNumber); jobDetail.SetIdAndNumber(GuidGenerator, entity.Id, detailNumber);
jobDetail.CountLabel = GuidGenerator.Create().ToString(); jobDetail.CountLabel = GuidGenerator.Create().ToString();
input.Details.Add(jobDetail); input.Details.Add(jobDetail);
} }
else
{
inputDetail.CountQty += depDetail.CountQty;
}
var jobDepDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDependentDetail>(depDetail); var jobDepDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDependentDetail>(depDetail);
var number = entity.Number; var number = entity.Number;
@ -141,7 +151,7 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou
jobDepDetail.CountLabel = GuidGenerator.Create().ToString(); jobDepDetail.CountLabel = GuidGenerator.Create().ToString();
entity.DepDetails.Add(jobDepDetail); entity.DepDetails.Add(jobDepDetail);
} }
foreach (var detail in input.Details) foreach (var detail in input.Details.Where(r => r.InventoryStage == entity.InventoryStage))
{ {
var entityDetail = entity.Details.FirstOrDefault(p => p.Id == detail.Id); var entityDetail = entity.Details.FirstOrDefault(p => p.Id == detail.Id);
@ -149,12 +159,7 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou
if (entityDetail == null || entityDetail.Id == Guid.Empty) if (entityDetail == null || entityDetail.Id == Guid.Empty)
{ {
var jobDetail = ObjectMapper.Map<CountJobDetail, CountJobDetail>(detail); var jobDetail = ObjectMapper.Map<CountJobDetail, CountJobDetail>(detail);
//var number =await GetNumber();
//jobDetail.SetIdAndNumber(GuidGenerator,entity.Id, number);
//jobDetail.CountLabel = GuidGenerator.Create().ToString();
//CountJobDetail jobDetail = new CountJobDetail() { };
entity.AddDetail(jobDetail); entity.AddDetail(jobDetail);
} }
else else
@ -163,6 +168,8 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou
.ConfigureAwait(false); .ConfigureAwait(false);
} }
} }
//移除原有明细里没有,并且第二次扫描以处的项目
entity.Details.RemoveAll(r => r.InventoryQty == 0 && r.CountQty == 0&& r.InventoryStage == entity.InventoryStage);
} }
public override void CheckDetails(CountJob entity, AbpValidationResult result) public override void CheckDetails(CountJob entity, AbpValidationResult result)

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CountPlanEventHandler.cs

@ -238,6 +238,7 @@ public class CountPlanEventHandler
foreach (var countPlanDetail in countPlanDetails) foreach (var countPlanDetail in countPlanDetails)
{ {
var countJobDetail = ObjectMapper.Map<CountPlanDetail, CountJobDetailInput>(countPlanDetail); var countJobDetail = ObjectMapper.Map<CountPlanDetail, CountJobDetailInput>(countPlanDetail);
countJobDetail.InventoryStage = countPlan.InventoryStage;
countJob.Details.Add(countJobDetail); countJob.Details.Add(countJobDetail);
} }

Loading…
Cancel
Save