|
|
@ -17,7 +17,7 @@ using Win_in.Sfs.Wms.Store.Domain.Acl.ItemQuality; |
|
|
|
namespace Win_in.Sfs.Wms.Store.Domain; |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 质检任务
|
|
|
|
/// 质检任务
|
|
|
|
/// </summary>
|
|
|
|
public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail>, IInspectJobManager |
|
|
|
{ |
|
|
@ -25,7 +25,6 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
private readonly IItemQualityAclService _itemQualityAclService; |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="repository"></param>
|
|
|
|
/// <param name="aqlAclService"></param>
|
|
|
@ -34,14 +33,14 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
IInspectJobRepository repository |
|
|
|
, IAQLAclService aqlAclService |
|
|
|
, IItemQualityAclService itemQualityAclService |
|
|
|
) : base(repository) |
|
|
|
) : base(repository) |
|
|
|
{ |
|
|
|
_aqlAclService = aqlAclService; |
|
|
|
_itemQualityAclService = itemQualityAclService; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 执行任务,生成检验记录
|
|
|
|
/// 执行任务,生成检验记录
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <param name="inspectJob"></param>
|
|
|
@ -59,7 +58,8 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
{ |
|
|
|
await entity.SetDetail(detail.Id, detail.GoodQty, detail.FailedReason, detail.FailedQty, |
|
|
|
detail.CrackQty, detail.NotPassedQty, user.Name, |
|
|
|
detail.SupplierBatch, detail.ArriveDate, detail.ProduceDate, detail.ExpireDate, detail.ContainerCode, detail.LocationCode, detail.Lot, |
|
|
|
detail.SupplierBatch, detail.ArriveDate, detail.ProduceDate, detail.ExpireDate, detail.ContainerCode, |
|
|
|
detail.LocationCode, detail.Lot, |
|
|
|
detail.PackingCode, detail.ReceiveQty).ConfigureAwait(false); |
|
|
|
} |
|
|
|
|
|
|
@ -78,19 +78,22 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
//
|
|
|
|
// var inspectNote = BuildInspectNoteCreateDTO(entity);
|
|
|
|
// await _inspectNoteAppService.CreateAsync(inspectNote);
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public override async Task<List<InspectJob>> GetWorkingListByPackingAsync(string packingCode) |
|
|
|
{ |
|
|
|
return await Repository.GetListAsync(c => c.Details.Any(p => p.PackingCode == packingCode) && c.JobStatus != EnumJobStatus.Closed && c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false); |
|
|
|
|
|
|
|
return await Repository |
|
|
|
.GetListAsync( |
|
|
|
c => c.Details.Any(p => p.PackingCode == packingCode) && c.JobStatus != EnumJobStatus.Closed && |
|
|
|
c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false); |
|
|
|
} |
|
|
|
|
|
|
|
public override async Task<List<InspectJob>> GetWorkingListByContainerAsync(string containerCode) |
|
|
|
{ |
|
|
|
return await Repository.GetListAsync(c => c.Details.Any(p => p.ContainerCode == containerCode) && c.JobStatus != EnumJobStatus.Closed && c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false); |
|
|
|
|
|
|
|
return await Repository |
|
|
|
.GetListAsync( |
|
|
|
c => c.Details.Any(p => p.ContainerCode == containerCode) && c.JobStatus != EnumJobStatus.Closed && |
|
|
|
c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false); |
|
|
|
} |
|
|
|
|
|
|
|
public override void CheckDetails(InspectJob entity, AbpValidationResult result) |
|
|
@ -111,7 +114,7 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 创建质检任务
|
|
|
|
/// 创建质检任务
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="entity"></param>
|
|
|
|
/// <returns></returns>
|
|
|
@ -131,21 +134,19 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 完成汇总的质检
|
|
|
|
/// 完成汇总的质检
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public async Task<InspectJobSummaryDetail> CompleteSummaryDetailStatusAsync(Guid id, Guid summaryDetailId, InspectJobSummaryDetail input, ICurrentUser currentUser) |
|
|
|
public async Task<InspectJobSummaryDetail> CompleteSummaryDetailStatusAsync(Guid id, Guid summaryDetailId, |
|
|
|
InspectJobSummaryDetail input, ICurrentUser currentUser) |
|
|
|
{ |
|
|
|
var jobEntity = await Repository.FindAsync(id); |
|
|
|
|
|
|
|
jobEntity.Details.Where(p => (p.DetailInspectStatus == EnumDetailInspectStatus.DefaultOK || |
|
|
|
p.DetailInspectStatus == EnumDetailInspectStatus.OK)&& |
|
|
|
p.ItemCode== input.ItemCode&& |
|
|
|
p.Lot==input.Lot |
|
|
|
).ToList().ForEach(p => |
|
|
|
{ |
|
|
|
p.GoodQty = p.ReceiveQty; |
|
|
|
}); |
|
|
|
p.DetailInspectStatus == EnumDetailInspectStatus.OK) && |
|
|
|
p.ItemCode == input.ItemCode && |
|
|
|
p.Lot == input.Lot |
|
|
|
).ToList().ForEach(p => { p.GoodQty = p.ReceiveQty; }); |
|
|
|
|
|
|
|
var goodqty = jobEntity.Details.Where(p => |
|
|
|
(p.DetailInspectStatus == EnumDetailInspectStatus.DefaultOK || |
|
|
@ -157,7 +158,8 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
//获取 汇总详情
|
|
|
|
var summaryDetailEntity = jobEntity.SummaryDetails.Find(p => p.Id == summaryDetailId); |
|
|
|
|
|
|
|
var itemQuality = await _itemQualityAclService.GetByItemCodeAsync(summaryDetailEntity.ItemCode, jobEntity.SupplierCode); |
|
|
|
var itemQuality = |
|
|
|
await _itemQualityAclService.GetByItemCodeAsync(summaryDetailEntity.ItemCode, jobEntity.SupplierCode); |
|
|
|
if (itemQuality.InspectType != EnumInspectType.Exempt) |
|
|
|
{ |
|
|
|
//获取质检标准
|
|
|
@ -195,13 +197,14 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
await LocalEventBus.PublishAsync(new SfsUpdateEntitySummaryDetailEventData<InspectJob>(CopyJob)).ConfigureAwait(false); |
|
|
|
await LocalEventBus.PublishAsync(new SfsUpdateEntitySummaryDetailEventData<InspectJob>(CopyJob)) |
|
|
|
.ConfigureAwait(false); |
|
|
|
|
|
|
|
return summaryDetailEntity; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 构造 完成汇总的质检
|
|
|
|
/// 构造 完成汇总的质检
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <param name="summaryDetailEntity"></param>
|
|
|
@ -224,13 +227,14 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 检查 完成 汇总质检
|
|
|
|
/// 检查 完成 汇总质检
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="inspectJobSummaryDetail"></param>
|
|
|
|
/// <param name="aql"></param>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
private static async Task CheckCompleteSummaryDetailAsync(InspectJobSummaryDetail inspectJobSummaryDetail, AQLDTO aql, |
|
|
|
private static async Task CheckCompleteSummaryDetailAsync(InspectJobSummaryDetail inspectJobSummaryDetail, |
|
|
|
AQLDTO aql, |
|
|
|
InspectJobSummaryDetail input) |
|
|
|
{ |
|
|
|
if (aql == null) |
|
|
@ -254,7 +258,7 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 【设置】 详情为【合格】
|
|
|
|
/// 【设置】 详情为【合格】
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <param name="detailId"></param>
|
|
|
@ -289,7 +293,7 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 【设置】 详情为【不合格】
|
|
|
|
/// 【设置】 详情为【不合格】
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <param name="inspectJobDetail"></param>
|
|
|
@ -319,7 +323,7 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 【设置】为【默认库存状态】
|
|
|
|
/// 【设置】为【默认库存状态】
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <param name="detailId"></param>
|
|
|
@ -349,13 +353,73 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
return detail; |
|
|
|
} |
|
|
|
|
|
|
|
public virtual async Task<InspectJob> SetManyDetailStatusAsync(Guid id, List<Guid> detailIdList, |
|
|
|
InspectJobDetail inspectJobDetail) |
|
|
|
{ |
|
|
|
var entity = await Repository.FindAsync(id).ConfigureAwait(false); |
|
|
|
|
|
|
|
var detailList = entity.Details.Where(p => detailIdList.Contains(p.Id)).ToList(); |
|
|
|
|
|
|
|
detailList.ForEach(detail => |
|
|
|
{ |
|
|
|
switch (detail.DetailInspectStatus) |
|
|
|
{ |
|
|
|
case EnumDetailInspectStatus.DefaultOK: |
|
|
|
detail.DetailInspectStatus = EnumDetailInspectStatus.DefaultOK; |
|
|
|
detail.Weight = string.Empty; |
|
|
|
detail.Volume = string.Empty; |
|
|
|
detail.Appearance = string.Empty; |
|
|
|
detail.OtherPropertyJson = string.Empty; |
|
|
|
detail.InspectQty = 0; |
|
|
|
detail.GoodQty = detail.ReceiveQty; |
|
|
|
detail.NotPassedQty = 0; |
|
|
|
detail.FailedQty = 0; |
|
|
|
detail.CrackQty = 0; |
|
|
|
|
|
|
|
break; |
|
|
|
case EnumDetailInspectStatus.NOK: |
|
|
|
detail.DetailInspectStatus = EnumDetailInspectStatus.NOK; |
|
|
|
detail.Weight = inspectJobDetail.Weight; |
|
|
|
detail.Volume = inspectJobDetail.Volume; |
|
|
|
detail.Appearance = inspectJobDetail.Appearance; |
|
|
|
detail.OtherPropertyJson = inspectJobDetail.OtherPropertyJson; |
|
|
|
detail.InspectQty = inspectJobDetail.InspectQty; |
|
|
|
detail.GoodQty = 0; |
|
|
|
detail.NotPassedQty = detail.ReceiveQty; |
|
|
|
detail.FailedQty = detail.ReceiveQty; |
|
|
|
detail.CrackQty = 0; |
|
|
|
break; |
|
|
|
case EnumDetailInspectStatus.OK: |
|
|
|
|
|
|
|
detail.DetailInspectStatus = EnumDetailInspectStatus.OK; |
|
|
|
detail.Weight = inspectJobDetail.Weight; |
|
|
|
detail.Volume = inspectJobDetail.Volume; |
|
|
|
detail.Appearance = inspectJobDetail.Appearance; |
|
|
|
detail.OtherPropertyJson = inspectJobDetail.OtherPropertyJson; |
|
|
|
detail.InspectQty = inspectJobDetail.InspectQty; |
|
|
|
detail.GoodQty = detail.ReceiveQty; |
|
|
|
detail.NotPassedQty = 0; |
|
|
|
detail.FailedQty = 0; |
|
|
|
detail.CrackQty = 0; |
|
|
|
break; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
await SetSummaryAllQtyAsync(entity).ConfigureAwait(false); |
|
|
|
|
|
|
|
await Repository.UpdateAsync(entity).ConfigureAwait(false); |
|
|
|
|
|
|
|
return entity; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 设置当前汇总的数量
|
|
|
|
/// 设置当前汇总的数量
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="inspectJobDetail"></param>
|
|
|
|
/// <param name="entity"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
private static async Task<InspectJobSummaryDetail> SetSummaryAllQtyAsync(InspectJobDetail inspectJobDetail, InspectJob entity) |
|
|
|
private static async Task<InspectJobSummaryDetail> SetSummaryAllQtyAsync(InspectJobDetail inspectJobDetail, |
|
|
|
InspectJob entity) |
|
|
|
{ |
|
|
|
await Task.CompletedTask.ConfigureAwait(false); |
|
|
|
var summaryDetail = entity.SummaryDetails.Find(p => p.ItemCode == inspectJobDetail.ItemCode); |
|
|
@ -372,169 +436,31 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail> |
|
|
|
return summaryDetail; |
|
|
|
} |
|
|
|
|
|
|
|
//private async Task<List<InspectJob>> BuildInspectJobsAsync(InspectRequestETO inspectRequest)
|
|
|
|
//{
|
|
|
|
// //根据物品和批次拆分任务
|
|
|
|
// var splits = inspectRequest.Details.Select(c => (c.ItemCode, c.Lot)).Distinct();
|
|
|
|
|
|
|
|
// var inspectJobs = new List<InspectJob>();
|
|
|
|
// foreach (var split in splits)
|
|
|
|
// {
|
|
|
|
// var inspectJob = await BuildInspectJobAsync(inspectRequest);
|
|
|
|
// decimal receiveQty=0;
|
|
|
|
// decimal InspectQty = 0;
|
|
|
|
// foreach (var inspectRequestDetail in inspectRequest.Details.Where(c=>c.ItemCode== split.ItemCode && c.Lot== split.Lot))
|
|
|
|
// {
|
|
|
|
// receiveQty += inspectRequestDetail.ReceiveQty;
|
|
|
|
// InspectQty += inspectRequestDetail.InspectQty;
|
|
|
|
// }
|
|
|
|
// foreach (var inspectRequestDetail in inspectRequest.Details.Where(c => c.ItemCode == split.ItemCode && c.Lot == split.Lot))
|
|
|
|
// {
|
|
|
|
// List<InspectJobDetail> details = new List<InspectJobDetail>();
|
|
|
|
|
|
|
|
// var inspectJobDetail = ObjectMapper.Map<InspectRequestDetailETO, InspectJobDetail>(inspectRequestDetail);
|
|
|
|
// inspectJobDetail.InspectUser = new Person()
|
|
|
|
// {
|
|
|
|
// Name = _currentUser.Name,
|
|
|
|
// Phone = _currentUser.PhoneNumber,
|
|
|
|
// Email = _currentUser.Email
|
|
|
|
// };
|
|
|
|
// inspectJobDetail.SetBatch(inspectJobDetail.Batch);
|
|
|
|
// inspectJobDetail.SetIdAndNumber(GuidGenerator,inspectJob.Id,inspectJob.Number);
|
|
|
|
|
|
|
|
// inspectJobDetail.InspectQty = InspectQty;
|
|
|
|
// inspectJobDetail.ReceiveQty = receiveQty;
|
|
|
|
// inspectJobDetail.Qty = new UomQty() { Qty= inspectRequestDetail .InspectQty, Uom= inspectRequestDetail.ReceiveQty.Uom };
|
|
|
|
// inspectJobDetail.Qty = new UomQty() { Qty = inspectRequestDetail.InspectQty, Uom = inspectRequestDetail.ReceiveQty.Uom };
|
|
|
|
|
|
|
|
// details.Add(inspectJobDetail);
|
|
|
|
// inspectJob.Details = details;
|
|
|
|
// break;
|
|
|
|
// }
|
|
|
|
// var location = await LocationAclService.GetByNameAsync(inspectJob.Details[0].LocationCode);
|
|
|
|
// inspectJob.SetWorkGroup(location).SetPriority(Clock);
|
|
|
|
// inspectJobs.Add(inspectJob);
|
|
|
|
|
|
|
|
// //免检任务自动完成 并调用检验记录生成业务
|
|
|
|
// if (inspectJob.Details.Any(c => c.InspectType == EnumInspectType.Exempt))
|
|
|
|
// {
|
|
|
|
// await inspectJob.ConfirmAsync(_currentUser.Id, _currentUser.Name, Clock.Now);
|
|
|
|
|
|
|
|
// //发布检验记录事件
|
|
|
|
// var inspectNote = BuildInspectNoteCreateDTO(inspectJob);
|
|
|
|
// await _inspectNoteAppService.CreateAsync(inspectNote);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// return inspectJobs;
|
|
|
|
//}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 检验不合格,下一步为挑选,重新生成类型为挑选的检验任务
|
|
|
|
/// 设置当前汇总的数量
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="inspectJob"></param>
|
|
|
|
/// <param name="entity"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="NotImplementedException"></exception>
|
|
|
|
//public virtual async Task AddPickInspectJobAsync(InspectJob inspectJob)
|
|
|
|
//{
|
|
|
|
|
|
|
|
// var location = await LocationAclService.GetByTypeAsync(inspectJob.Details[0].LocationCode);
|
|
|
|
// inspectJob.SetDetails(location.Code) //设置明细
|
|
|
|
// .SetWorkGroup(location.WarehouseCode, location.WorkGroupCode) //设置工作组
|
|
|
|
// .SetPriority(Clock); //设置优先级;
|
|
|
|
|
|
|
|
// await base.AddAsync(inspectJob);
|
|
|
|
//}
|
|
|
|
|
|
|
|
//public virtual async Task AddByInspectRequestAsync(InspectRequestDTO inspectRequest, ICurrentUser currentUser)
|
|
|
|
//{
|
|
|
|
// var inspectJobs = await BuildInspectJobsAsync(inspectRequest, currentUser);
|
|
|
|
|
|
|
|
// await AddManyAsync(inspectJobs);
|
|
|
|
//}
|
|
|
|
|
|
|
|
//public override async Task<List<InspectJob>> AddManyAsync(List<InspectJob> entities)
|
|
|
|
//{
|
|
|
|
// foreach (var inspectJob in entities)
|
|
|
|
// {
|
|
|
|
// inspectJob.SummaryDetails.ForEach(p => p.SetIdAndNumber(GuidGenerator, inspectJob.Id, inspectJob.Number));
|
|
|
|
// }
|
|
|
|
// return await base.AddManyAsync(entities);
|
|
|
|
//}
|
|
|
|
|
|
|
|
///// <summary>
|
|
|
|
///// 创建质检任务 实体
|
|
|
|
///// </summary>
|
|
|
|
///// <param name="inspectRequest"></param>
|
|
|
|
///// <returns></returns>
|
|
|
|
//private async Task<InspectJob> BuildInspectJobAsync(InspectRequestDTO inspectRequest)
|
|
|
|
//{
|
|
|
|
// var entity = ObjectMapper.Map<InspectRequestDTO, InspectJob>(inspectRequest);
|
|
|
|
// entity.JobType = EnumJobType.InspectJob;
|
|
|
|
// entity.JobStatus = EnumJobStatus.Open;
|
|
|
|
// return entity;
|
|
|
|
//}
|
|
|
|
|
|
|
|
///// <summary>
|
|
|
|
///// 创建质检任务 实体
|
|
|
|
///// </summary>
|
|
|
|
///// <param name="inspectRequest"></param>
|
|
|
|
///// <param name="currentUser"></param>
|
|
|
|
///// <returns></returns>
|
|
|
|
//private async Task<List<InspectJob>> BuildInspectJobsAsync(InspectRequestDTO inspectRequest, ICurrentUser currentUser)
|
|
|
|
//{
|
|
|
|
// var inspectJobs = new List<InspectJob>();
|
|
|
|
|
|
|
|
// //按汇总明细分解成多个任务
|
|
|
|
// foreach (var summarydDetailETO in inspectRequest.SummaryDetails)
|
|
|
|
// {
|
|
|
|
// var inspectJob = await BuildInspectJobAsync(inspectRequest);
|
|
|
|
|
|
|
|
// //处理明细 同物品+批次
|
|
|
|
// var inspectRequestDetails = inspectRequest.Details
|
|
|
|
// .Where(c => c.Lot == summarydDetailETO.Lot && c.ItemCode == summarydDetailETO.ItemCode).ToList();
|
|
|
|
// var details =
|
|
|
|
// ObjectMapper.Map<List<InspectRequestDetailDTO>, List<InspectJobDetail>>(inspectRequestDetails);
|
|
|
|
// List<Guid> deleteIds = new List<Guid>();
|
|
|
|
// foreach (var detail in details)
|
|
|
|
// {
|
|
|
|
// detail.InspectUser = new Person()
|
|
|
|
// {
|
|
|
|
// Name = currentUser.Name,
|
|
|
|
// Phone = currentUser.PhoneNumber,
|
|
|
|
// Email = currentUser.Email
|
|
|
|
// };
|
|
|
|
// if (detail.ReceiveQty == 0)
|
|
|
|
// deleteIds.Add(detail.Id);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// inspectJob.Details.AddRange(details);
|
|
|
|
|
|
|
|
// //删除收获数量为0的记录
|
|
|
|
// foreach (var deleteId in deleteIds)
|
|
|
|
// {
|
|
|
|
// inspectJob.RemoveDetail(deleteId);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //处理汇总明细
|
|
|
|
// var summarydDetail =
|
|
|
|
// ObjectMapper.Map<InspectRequestSummaryDetailDTO, InspectJobSummaryDetail>(summarydDetailETO);
|
|
|
|
// //summarydDetail.Qty=new UomQty(summarydDetailETO.ReceiveUom, summarydDetailETO.InspectQty);
|
|
|
|
// summarydDetail.InspectUser = new Person(currentUser.Name, currentUser.PhoneNumber, currentUser.Email);
|
|
|
|
// inspectJob.SummaryDetails.Add(summarydDetail);
|
|
|
|
|
|
|
|
// if (inspectJob.Details.Any())
|
|
|
|
// {
|
|
|
|
// //设置任务工作组和优先级
|
|
|
|
// var location =
|
|
|
|
// await LocationAclService.GetByTypeAsync(inspectJob.Details.First().LocationCode);
|
|
|
|
// inspectJob.SetWorkGroup(location.WarehouseCode, location.WorkGroupCode)
|
|
|
|
// .SetPriority(Clock);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// inspectJobs.Add(inspectJob);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// return inspectJobs;
|
|
|
|
//}
|
|
|
|
private static async Task<List<InspectJobSummaryDetail>> SetSummaryAllQtyAsync(InspectJob entity) |
|
|
|
{ |
|
|
|
var listSummaryDetails = new List<InspectJobSummaryDetail>(); |
|
|
|
var itemCodeGroupBy = entity.Details.GroupBy(p => p.ItemCode); |
|
|
|
|
|
|
|
foreach (var itemCodeList in itemCodeGroupBy) |
|
|
|
{ |
|
|
|
var summaryDetail = entity.SummaryDetails.Find(p => p.ItemCode == itemCodeList.Key); |
|
|
|
|
|
|
|
summaryDetail.InspectQty = itemCodeList.Sum(p => p.InspectQty); |
|
|
|
summaryDetail.GoodQty = itemCodeList.Sum(p => p.GoodQty); |
|
|
|
summaryDetail.FailedQty = itemCodeList.Sum(p => p.FailedQty); |
|
|
|
summaryDetail.CrackQty = itemCodeList.Sum(p => p.CrackQty); |
|
|
|
summaryDetail.NotPassedQty = itemCodeList.Sum(p => p.NotPassedQty); |
|
|
|
|
|
|
|
listSummaryDetails.Add(summaryDetail); |
|
|
|
} |
|
|
|
|
|
|
|
await Task.CompletedTask.ConfigureAwait(false); |
|
|
|
|
|
|
|
return listSummaryDetails; |
|
|
|
} |
|
|
|
} |
|
|
|