From 9f1ef133186d43b78b093b231f7e41d3cfb3ad70 Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Fri, 1 Mar 2024 10:32:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0Kitting=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Kittings/KittingAppService.cs | 63 +++++++++++++++---- .../Kittings/KittingEfCoreRepository.cs | 3 + 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs index 662897906..e11d79d97 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs @@ -1,15 +1,18 @@ using System; - +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using NUglify.Helpers; +using Volo.Abp; using Volo.Abp.Caching; +using Volo.Abp.Domain.Entities; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; +using Win_in.Sfs.Basedata.Kittings.Inputs; using Win_in.Sfs.Shared; @@ -21,6 +24,8 @@ namespace Win_in.Sfs.Basedata.Application; public class KittingAppService : SfsBaseDataWithCodeAppServiceBase, IKittingAppService { private new readonly IKittingRepository _repository; + + private readonly IKittingManager _manager; public KittingAppService(IKittingRepository repository, IDistributedCache cache, IKittingManager manager) : base(repository,cache) @@ -35,18 +40,54 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase CreateAsync(KittingEditInput input) { - var entity = ObjectMapper.Map(input); - - entity.SetId(Guid.NewGuid()); - - entity.Details.ForEach(item => + + var detailquery=await _repository.WithDetailsAsync().ConfigureAwait(false); + var first = detailquery.FirstOrDefault(p => p.Code == input.Code); + var codes = input.Details.Select(p => p.PartCode); + if (first != null) { - item.MasterId = entity.Id; - }); - - entity = await _repository.InsertAsync(entity).ConfigureAwait(false); - return ObjectMapper.Map(entity); + throw new UserFriendlyException($"已存在编码:{input.Code}的Kitting箱"); + + + // var query = from itm in input.Details + // join itm1 in first.Details on itm.PartCode equals itm1.PartCode + // into temp1 + // from tm1 in temp1.DefaultIfEmpty() + // where tm1==null + // select itm; + //var details=ObjectMapper.Map,List>(query.ToList()); + //foreach (var itm in details) + //{ + // itm.MasterId = first.Id; + // first.Details.Add(itm); + //} + + //var entity = await _repository.UpdateAsync(first, true).ConfigureAwait(false); + // return ObjectMapper.Map(first); + } + else + { + var entity = ObjectMapper.Map(input); + entity.SetId(Guid.NewGuid()); + entity.Details.ForEach(item => + { + item.MasterId = entity.Id; + }); + entity = await _repository.InsertAsync(entity).ConfigureAwait(false); + return ObjectMapper.Map(entity); + + } + + //first.Details.Where(p => codes.Contains(p.PartCode)); + //var entity = ObjectMapper.Map(input); + //entity.SetId(Guid.NewGuid()); + //entity.Details.ForEach(item => + //{ + // item.MasterId = entity.Id; + //}); + //entity = await _repository.InsertAsync(entity).ConfigureAwait(false); + //return ObjectMapper.Map(entity); } [HttpPut] diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs index 665d2a8c5..3a2da3b64 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs @@ -23,6 +23,9 @@ public class KittingEfCoreRepository : SfsBaseDataEfCoreRepositoryBase