From 2dda153008086f77a83b6bb11185a3748a35bebf Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Tue, 23 Jul 2024 15:26:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=A1=E7=A0=81=E5=88=86=E7=BB=84=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E9=A1=B9=E7=9B=AE=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SampleGroupDetailAppService.cs | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/Shentun.Peis.Application/SampleGroupDetails/SampleGroupDetailAppService.cs b/src/Shentun.Peis.Application/SampleGroupDetails/SampleGroupDetailAppService.cs index 6b1bed6..8e29b36 100644 --- a/src/Shentun.Peis.Application/SampleGroupDetails/SampleGroupDetailAppService.cs +++ b/src/Shentun.Peis.Application/SampleGroupDetails/SampleGroupDetailAppService.cs @@ -32,17 +32,23 @@ namespace Shentun.Peis.SampleGroupDetails public class SampleGroupDetailAppService : ApplicationService { private readonly IRepository _repository; + private readonly IRepository _sampleGroupRepository; private readonly IRepository _userRepository; + private readonly IRepository _asbitemRepository; private readonly SampleGroupDetailManager _manager; public SampleGroupDetailAppService( IRepository repository, IRepository userRepository, - SampleGroupDetailManager manager) + SampleGroupDetailManager manager, + IRepository asbitemRepository, + IRepository sampleGroupRepository) { - this._repository = repository; - this._userRepository = userRepository; - this._manager = manager; + _repository = repository; + _userRepository = userRepository; + _manager = manager; + _asbitemRepository = asbitemRepository; + _sampleGroupRepository = sampleGroupRepository; } /// @@ -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 sampleGroupDetails = new List(); foreach (var details in input.Details) {