Browse Source

条码分组明细项目限制

master
wxd 1 year ago
parent
commit
2dda153008
  1. 32
      src/Shentun.Peis.Application/SampleGroupDetails/SampleGroupDetailAppService.cs

32
src/Shentun.Peis.Application/SampleGroupDetails/SampleGroupDetailAppService.cs

@ -32,17 +32,23 @@ namespace Shentun.Peis.SampleGroupDetails
public class SampleGroupDetailAppService : ApplicationService
{
private readonly IRepository<SampleGroupDetail> _repository;
private readonly IRepository<SampleGroup, Guid> _sampleGroupRepository;
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly IRepository<Asbitem, Guid> _asbitemRepository;
private readonly SampleGroupDetailManager _manager;
public SampleGroupDetailAppService(
IRepository<SampleGroupDetail> repository,
IRepository<IdentityUser, Guid> userRepository,
SampleGroupDetailManager manager)
SampleGroupDetailManager manager,
IRepository<Asbitem, Guid> asbitemRepository,
IRepository<SampleGroup, Guid> sampleGroupRepository)
{
this._repository = repository;
this._userRepository = userRepository;
this._manager = manager;
_repository = repository;
_userRepository = userRepository;
_manager = manager;
_asbitemRepository = asbitemRepository;
_sampleGroupRepository = sampleGroupRepository;
}
/// <summary>
@ -71,6 +77,24 @@ namespace Shentun.Peis.SampleGroupDetails
await _manager.CheckAndDeleteAsync(input.SampleGroupId);
if (input.Details.Any())
{
#region 加限制
if (input.Details.Any())
{
var isAsbitemEnt = (from sampleGroupDetail in await _repository.GetQueryableAsync()
join asbitem in await _asbitemRepository.GetQueryableAsync() on sampleGroupDetail.AsbitemId equals asbitem.Id
join sampleGroup in await _sampleGroupRepository.GetQueryableAsync() on sampleGroupDetail.SampleGroupId equals sampleGroup.Id into sampleGroupTemp
from sampleGrouphaveEmpty in sampleGroupTemp.DefaultIfEmpty()
where input.Details.Select(s => s.AsbitemId).Contains(sampleGroupDetail.AsbitemId)
select new
{
asbitemName = asbitem.DisplayName,
sampleGroupName = sampleGrouphaveEmpty != null ? sampleGrouphaveEmpty.DisplayName : ""
}).FirstOrDefault();
if (isAsbitemEnt != null)
throw new UserFriendlyException($"组合项目{isAsbitemEnt.asbitemName}已在{isAsbitemEnt.sampleGroupName}条码分组中,不允许添加");
}
#endregion
List<SampleGroupDetail> sampleGroupDetails = new List<SampleGroupDetail>();
foreach (var details in input.Details)
{

Loading…
Cancel
Save