diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/EquipmentController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/EquipmentController.cs new file mode 100644 index 000000000..b0b52c481 --- /dev/null +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/EquipmentController.cs @@ -0,0 +1,43 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Json; +using Win_in.Sfs.Basedata.Application.Contracts; + +namespace Win_in.Sfs.Wms.Pda.Controllers.BaseDatas; + +/// +/// 器具控制器 +/// +[ApiController] +[Route($"{PdaHostConst.ROOT_ROUTE}Equipment")] +public class EquipmentController : AbpController +{ + private readonly IEquipmentAppService _dictApp; + + /// + /// + /// + /// + public EquipmentController(IEquipmentAppService dictApp,IOptions options) + { + _dictApp = dictApp; + var str = options.Value.DefaultDateTimeFormat; + Console.WriteLine(str); + } + + /// + /// 按代码获取字典 + /// + /// 字典代码 + /// + [HttpGet("by-code")] + public virtual async Task GetByCodeAsync(string code) + { + var dtos = await _dictApp.GetByCodeAsync(code).ConfigureAwait(false); + + return dtos; + } +} diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/KittingController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/KittingController.cs new file mode 100644 index 000000000..f2f15ec47 --- /dev/null +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/KittingController.cs @@ -0,0 +1,43 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Json; +using Win_in.Sfs.Basedata.Application.Contracts; + +namespace Win_in.Sfs.Wms.Pda.Controllers.BaseDatas; + +/// +/// 器具控制器 +/// +[ApiController] +[Route($"{PdaHostConst.ROOT_ROUTE}Kitting")] +public class KittingController : AbpController +{ + private readonly IKittingAppService _dictApp; + + /// + /// + /// + /// + public KittingController(IKittingAppService dictApp,IOptions options) + { + _dictApp = dictApp; + var str = options.Value.DefaultDateTimeFormat; + Console.WriteLine(str); + } + + /// + /// 按代码获取字典 + /// + /// 字典代码 + /// + [HttpGet("by-code")] + public virtual async Task GetByCodeAsync(string code) + { + var dtos = await _dictApp.GetByCodeAsync(code).ConfigureAwait(false); + + return dtos; + } +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs index e76aa7b41..9c00c6a23 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs @@ -7,17 +7,26 @@ namespace Win_in.Sfs.Basedata.Application.Contracts; public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase { + /// + /// 类型 + /// + [Display(Name = "类型")] + public string Type { get; set; } = string.Empty; /// /// 器具编号 /// - [Display(Name = "器具编号")] + [Display(Name = "器具代码")] [Required(ErrorMessage = "{0}是必填项")] public string Code { get; set; } + + /// - /// 类型 + /// 标包数量 /// - [Display(Name = "类型")] - public string Type { get; set; } = string.Empty; + [Display(Name = "标包数")] + [Required(ErrorMessage = "{0}是必填项")] + public decimal StdQty { get; set; } + /// /// 型号 /// @@ -26,11 +35,13 @@ public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase /// /// 库位编号 /// - [Display(Name = "库位编号")] + [Display(Name = "库位代码")] + [Required(ErrorMessage = "{0}是必填项")] public string LocCode { get; set; } = string.Empty; /// /// 状态 /// + [Display(Name = "状态")] public int State { get; set; } = 0; @@ -46,11 +57,7 @@ public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase [Display(Name = "创建时间")] public DateTime CreatTime { get; set; }=DateTime.Now; - /// - /// 标包数量 - /// - [Display(Name = "标包数")] - public decimal StdQty { get; set; } + //#region Base ///// diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs index 747bdef64..c09872d2a 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs @@ -9,17 +9,26 @@ namespace Win_in.Sfs.Basedata.Application.Contracts; [Display(Name = "物品")] public class EquipmentImportInput : SfsBaseDataImportInputBase { + /// + /// 类型 + /// + [Display(Name = "类型")] + public string Type { get; set; } = string.Empty; /// /// 器具编号 /// - [Display(Name = "器具编号")] + [Display(Name = "器具代码")] [Required(ErrorMessage = "{0}是必填项")] public string Code { get; set; } + + /// - /// 类型 + /// 标包数量 /// - [Display(Name = "类型")] - public string Type { get; set; } = string.Empty; + [Display(Name = "标包数")] + [Required(ErrorMessage = "{0}是必填项")] + public decimal StdQty { get; set; } + /// /// 型号 /// @@ -28,13 +37,16 @@ public class EquipmentImportInput : SfsBaseDataImportInputBase /// /// 库位编号 /// - [Display(Name = "库位编号")] + [Display(Name = "库位代码")] + [Required(ErrorMessage = "{0}是必填项")] public string LocCode { get; set; } = string.Empty; /// /// 状态 /// + [Display(Name = "状态")] public int State { get; set; } = 0; + /// /// 创建人 /// @@ -47,12 +59,6 @@ public class EquipmentImportInput : SfsBaseDataImportInputBase [Display(Name = "创建时间")] public DateTime CreatTime { get; set; } = DateTime.Now; - /// - /// 标包数量 - /// - [Display(Name = "标包数")] - public decimal StdQty { get; set; } - diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs index a4ed711da..919062672 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs @@ -1,5 +1,7 @@ +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using Volo.Abp.Application.Dtos; using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Shared.Domain; @@ -8,7 +10,7 @@ using Win_in.Sfs.Shared.Domain.Entities; namespace Win_in.Sfs.Basedata.Application.Contracts; [Display(Name = "Kitting箱")] -public class KittingDTO : SfsBaseDataDTOBase, IHasCode, IHasName +public class KittingDTO : EntityDto, IHasCode, IHasName { [Display(Name ="编号")] public string Code { get; set; } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs index df0b27c65..75c7ac409 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs @@ -1,5 +1,10 @@ +using System; using System.Collections.Generic; +using System.ComponentModel; using System.ComponentModel.DataAnnotations; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Data; +using Volo.Abp.MultiTenancy; using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Basedata.Kittings.Inputs; @@ -8,7 +13,7 @@ using Win_in.Sfs.Shared.Domain.Entities; namespace Win_in.Sfs.Basedata.Application.Contracts; -public class KittingEditInput : SfsBaseDataCreateOrUpdateInputBase +public class KittingEditInput : EntityDto, IMultiTenant, IRemark, IHasExtraProperties { public string Code { get; set; } @@ -17,5 +22,11 @@ public class KittingEditInput : SfsBaseDataCreateOrUpdateInputBase public virtual List Details { get; set; }=new List(); + [DefaultValue(null)] + public Guid? TenantId { get; set; } + public string Remark { get; set; } + + [DefaultValue("{}")] + public ExtraPropertyDictionary ExtraProperties { get; set; } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs index e47e7d778..38f183eec 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Win_in.Sfs.Basedata.Domain; @@ -10,11 +11,52 @@ namespace Win_in.Sfs.Basedata.Application.Contracts; [Display(Name = "Kitting箱")] public class KittingImportInput : SfsBaseDataImportInputBase { - + /// + /// Kitting编码 + /// + [Display(Name ="Kitting编码")] public string Code { get; set; } + /// + /// Kitting名称 + /// + [Display(Name = "Kitting名称")] public string Name { get; set; } + /// + /// 物料编码 + /// + [Display(Name = "物料编码")] + public string PartCode { set; get; } + /// + /// 描述1 + /// + [Display(Name = "物料描述1")] + public string Desc1 { set; get; } + /// + /// 描述2 + /// + [Display(Name = "物料描述2")] + public string Desc2 { set; get; } + /// + /// 包装数量 + /// + [Display(Name = "包装数量")] + public decimal Qty { set; get; } + /// + /// 配置 + /// + [Display(Name = "配置")] + public string Conf { set; get; } + //[Display(Name = "租户ID")] + //public Guid? TenantId + //{ + // set; get; + //} + //[Display(Name = "备注")] + //public string Remark { get; set; } + + + - } //[Serializable] 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 33ef8b711..5a68489e2 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,19 +1,29 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.IO; using System.Linq; using System.Threading.Tasks; +using EFCore.BulkExtensions; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using NUglify.Helpers; +using Omu.ValueInjecter; using Volo.Abp; using Volo.Abp.Caching; using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.ObjectMapping; +using Volo.Abp.Uow; 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; +using Win_in.Sfs.Shared.Application.Contracts; +using Win_in.Sfs.Shared.Application.Contracts.ExportAndImport; namespace Win_in.Sfs.Basedata.Application; @@ -25,13 +35,15 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase cache, IKittingManager manager) : base(repository,cache) + public KittingAppService(IKittingRepository repository, IDistributedCache cache, IKittingManager manager, IExportImportService excelService) : base(repository,cache) { _repository = repository; _manager = manager; + _excelService = excelService; //base.CreatePolicyName = KittingPermissions.Create; //base.UpdatePolicyName = KittingPermissions.Update; //base.DeletePolicyName = KittingPermissions.Delete; @@ -62,7 +74,6 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase(entity); } else @@ -98,23 +109,13 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase p.Id); //first.Details.Where(p =>ids.Contains(p.Id)); - - return base.UpdateAsync(id, input); - - - - - //var entity = ObjectMapper.Map(input); ////entity.SetId(id); ////entity.Code = first.Code; //await _repository.UpsertAsync(entity).ConfigureAwait(false); //var firstEntity = detailquery.FirstOrDefault(p => p.Id == id); - - - //return ObjectMapper.Map(first); @@ -139,11 +140,208 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase(input); await _repository.UpsertAsync(entity).ConfigureAwait(false); + } + [HttpPost("import")] + [Consumes("multipart/form-data")] + + public override async Task ImportAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file) + { + var query= _repository.WithDetails().AsNoTracking(); + using var ms = new MemoryStream(); + await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false); + var inputFileBytes = ms.GetAllBytes(); + var importList= _excelService.Import(inputFileBytes).ToList(); + var checklist=importList.GroupBy(p => new { p.Code, p.PartCode }).Where(g => g.Count() > 1).Select(p => new { Code = p.Key.Code, PartCode = p.Key.PartCode });//导入重复报错 + //检测是否导入重复 + + + + + var codeList=importList.Select(p=>p.Code).Distinct().ToList(); + var includeList = query.Where(p => codeList.Contains(p.Code)).ToList(); + var existCodeList = includeList.Select(p => p.Code).ToList(); + var newCodeList = from itm in codeList + join itm1 in existCodeList on itm equals itm1 + into temp + from tm in temp.DefaultIfEmpty() + where tm == null + select itm; + if(newCodeList.Any()) + { + #region 新KITTING + var newKittingList = importList.Where(p => newCodeList.Contains(p.Code)).ToList();//新Kitting + List newKittingInputList = new List(); + List newMainList = new List(); + List newdetailList = new List(); + foreach (var itm in newCodeList) + { + var newDetail = newKittingList.Where(p => p.Code == itm).ToList(); + var first = newDetail.FirstOrDefault(); + var kitting = new KittingEditInput(); + kitting.InjectFrom(first); + foreach (var detail in newDetail) + { + var inputdetail = new KittingDetailInput(); + inputdetail.InjectFrom(detail); + kitting.Details.Add(inputdetail); + } + newKittingInputList.Add(kitting); + } + var kittingList = ObjectMapper.Map, List>(newKittingInputList); + foreach (var itm in kittingList) + { + var id = Guid.NewGuid(); + itm.SetId(id); + //newMainList.Add(itm); + foreach (var detail in itm.Details) + { + detail.SetId(Guid.NewGuid()); + detail.MasterId = id; + //newdetailList.Add(detail); + } + } + await _repository.InsertManyAsync(kittingList).ConfigureAwait(false); + + //await _repository.GetDbContext().BulkInsertAsync(newMainList).ConfigureAwait(false); + //await _repository.GetDbContext().BulkInsertAsync(newdetailList).ConfigureAwait(false); + #endregion + } + if (existCodeList.Any()) + { + var existKittingList = importList.Where(p => existCodeList.Contains(p.Code)).ToList();//新Kitting + List existKittingInputList = new List(); + List existKittingDetailList = new List(); + List newKittingDetailList = new List(); + foreach (var include in includeList) + { + var newDetail = existKittingList.Where(p => p.Code == include.Code).ToList(); + var innerExist = from itm in newDetail + join itm1 in include.Details on itm.PartCode equals itm1.PartCode + select itm; + if (innerExist.Any()) + { + var list = innerExist.ToList(); + foreach (var itm in include.Details) + { + var entity = list.FirstOrDefault(p => p.PartCode == itm.PartCode); + itm.Desc1 = entity.Desc1; + itm.Desc2 = entity.Desc2; + itm.Qty = entity.Qty; + itm.Conf = entity.Conf; + //existKittingDetailList.Add(itm); + } + } + //var leftExist = from itm in newDetail + // join itm1 in include.Details on itm.PartCode equals itm1.PartCode + // into temp + // from tm in temp.DefaultIfEmpty() + // where tm == null + // select itm; + //if (leftExist.Any()) + //{ + // var list = leftExist.ToList(); + // foreach (var itm in list) + // { + // var detail = new KittingDetail(); + // detail.InjectFrom(itm); + // detail.SetId(Guid.NewGuid()); + // detail.MasterId = include.Id; + // //newKittingDetailList.Add(detail); + + // } + //} + + //var entity = new KittingEditInput(); + //entity.InjectFrom(include); + + //foreach (var detail in include.Details) + //{ + // var detailInput = new KittingDetailInput(); + // detailInput.InjectFrom(detail); + // entity.Details.Add(detailInput); + + //} + + //var newDetail = existKittingList.Where(p => p.Code == entity.Code).ToList(); + //var innerExist = from itm in newDetail + // join itm1 in entity.Details on itm.PartCode equals itm1.PartCode + // select itm; + //if (innerExist.Any()) + //{ + // var list = innerExist.ToList(); + // foreach (var itm in entity.Details) + // { + // var l = list.FirstOrDefault(p => p.PartCode == itm.PartCode); + // itm.Desc1 = l.Desc1; + // itm.Desc2 = l.Desc2; + // itm.Qty = l.Qty; + // itm.Conf = l.Conf; + // } + //} + //var leftExist = from itm in newDetail + // join itm1 in entity.Details on itm.PartCode equals itm1.PartCode + // into temp + // from tm in temp.DefaultIfEmpty() + // where tm == null + // select itm; + //if (leftExist.Any()) + //{ + // var list = leftExist.ToList(); + // foreach (var itm in list) + // { + // var detail = new KittingDetailInput(); + // detail.InjectFrom(itm); + // detail.Id = Guid.NewGuid(); + // detail.MasterId = entity.Id; + // entity.Details.Add(detail); + + // } + //} + //existKittingInputList.Add(entity); + } + + // List list1 = new List(); + // foreach (var itm in existKittingInputList) + // { + // Kitting kitting = new Kitting(); + // kitting.InjectFrom(itm); + // kitting.SetId(itm.Id); + // foreach (var detail in itm.Details) + // { + // KittingDetail kittingDetail = new KittingDetail(); + // kittingDetail.InjectFrom(detail); + // kittingDetail.SetId(detail.Id); + // kitting.AddDetails(kittingDetail); + // } + // list1.Add(kitting); + + // } + //var details= list1.Select(p => p.Details).ToList(); + + + // //await _repository.GetDbContext().BulkInsertAsync(newKittingDetailList).ConfigureAwait(continueOnCapturedContext: false); + // //await _repository.GetDbContext().BulkUpdateAsync(existKittingDetailList).ConfigureAwait(continueOnCapturedContext: false); + // // var ls= ObjectMapper.Map< List ,List >(existKittingInputList); + + + // //await _repository.UpdateManyAsync(list1,true).ConfigureAwait(continueOnCapturedContext: false); + + + // await _manager.ImportDataAsync(includeList).ConfigureAwait(false); - } + } + + + return new JsonResult(new { Code = 200, Message = "" }); + + + + + } + protected override async Task GetFromRepositoryAsync(string code) diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs index 2c675cc43..657c97e5a 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs @@ -17,6 +17,33 @@ public partial class BasedataApplicationAutoMapperProfile : Profile .ReverseMap(); + CreateMap() + .IgnoreAuditedObjectProperties() + .Ignore(x => x.Details) + .Ignore(x => x.TenantId) + .Ignore(x => x.ExtraProperties) + .Ignore(x => x.Remark) + .Ignore(x => x.ConcurrencyStamp) + .Ignore(x => x.Id); + + + CreateMap() + .IgnoreAuditedObjectProperties() + //.ForMember(x => x., y => y.MapFrom(t => t.Code)) + .ForMember(x => x.PartCode, y => y.MapFrom(t => t.PartCode)) + .ForMember(x => x.Desc1, y => y.MapFrom(t => t.Desc1)) + .ForMember(x => x.Desc2, y => y.MapFrom(t => t.Desc2)) + .Ignore(x => x.MasterId) + .Ignore(x => x.TenantId) + .Ignore(x => x.Remark) + .Ignore(x => x.Id); + + + + + + + // CreateMap() // .IgnoreAuditedObjectProperties() @@ -29,7 +56,7 @@ public partial class BasedataApplicationAutoMapperProfile : Profile //CreateMap() // .IgnoreAuditedObjectProperties() - + // .Ignore(x => x.MasterId) // .Ignore(x => x.Enabled) // .Ignore(x => x.TenantId) @@ -37,9 +64,9 @@ public partial class BasedataApplicationAutoMapperProfile : Profile // .Ignore(x => x.Id); CreateMap() - .IgnoreAuditedObjectProperties() + .IgnoreAuditedObjectProperties(); // .ForMember(x => x.MasterId, y => y.MapFrom(t => t.MasterId)) - ; + CreateMap() .IgnoreAuditedObjectProperties() diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs index b1af95693..37b5133a2 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs @@ -38,6 +38,7 @@ public class KittingDetail : AuditedEntity, IMultiTenant, IRemark public string Remark { get; set; } + public void SetId(Guid guid) { Id= guid; 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 f4dba107c..24cccf4b8 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 @@ -19,10 +19,7 @@ public class KittingEfCoreRepository : SfsBaseDataEfCoreRepositoryBase(); var detail=DbContext.Set(); - var dbSet = await GetDbSetAsync().ConfigureAwait(false); - - var exist = await main.FirstOrDefaultAsync(p => p.Code == newData.Code).ConfigureAwait(false); if (exist == null) { diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs index 64a9ac7db..45001dae6 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs @@ -399,6 +399,7 @@ public abstract class SfsCrudWithDetailsAppServiceBase(); await Cache.SetItemAsync(dto.Id.ToString(), dto, SfsCacheConst.SeveralMinutes).ConfigureAwait(false); return dto;