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 7b48e3b61..3062be0a7 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 @@ -5,6 +5,18 @@ namespace Win_in.Sfs.Basedata.Application.Contracts; [Display(Name = "Kitting箱")] public class KittingImportInput : SfsBaseDataImportInputBase { + + + [Display(Name = "Kitting编码")] + public string Code { get; set; } + + /// + /// Kitting名称 + /// + [Display(Name = "Kitting名称")] + public string Name { get; set; } + + /// /// Kitting编码 /// @@ -34,15 +46,7 @@ public class KittingImportInput : SfsBaseDataImportInputBase - [Display(Name = "Kitting编码")] - public string Code { get; set; } - - /// - /// Kitting名称 - /// - [Display(Name = "Kitting名称")] - public string Name { get; set; } - + /// 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 e3020c8bc..8b513d23d 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 @@ -36,14 +36,22 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase cache, IKittingManager manager, IExportImportService excelService) : base(repository,cache) + public KittingAppService(IKittingRepository repository, IDistributedCache cache, IKittingManager manager, + IExportImportService excelService, + IItemBasicRepository itmBasicRepository + ) : base(repository,cache) { _repository = repository; _manager = manager; - _excelService = excelService; + _excelService = excelService; + _itmBasicRepository = itmBasicRepository; //base.CreatePolicyName = KittingPermissions.Create; //base.UpdatePolicyName = KittingPermissions.Update; //base.DeletePolicyName = KittingPermissions.Delete; @@ -151,13 +159,40 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase(inputFileBytes).ToList(); var checklist=importList.GroupBy(p => new { p.Code, p.ItemCode }).Where(g => g.Count() > 1).Select(p => new { Code = p.Key.Code, PartCode = p.Key.ItemCode });//导入重复报错 //检测是否导入重复 List errors = new List(); + + + var importPartList = importList.Select(p => p.ItemCode).Distinct().ToList(); + var partContainList = await _itmBasicRepository.GetListAsync(p => importPartList.Distinct().Contains(p.Code)).ConfigureAwait(false); + + var partCodeList1 = partContainList.Select(p => p.Code); + + var errorQuery = from itm in importPartList join itm1 in partCodeList1 on itm equals itm1 into temp from tm in temp.DefaultIfEmpty() where tm == null select itm; + + if (errorQuery.Any()) + { + foreach (var error in errorQuery) + { + errors.Add(new KittingErrorDto() { Code = "", PartCode = error, Content = "不在零件基础信息!" }); + } + } if (checklist.Any()) { foreach (var error in checklist) { errors.Add(new KittingErrorDto() { Code=error.Code,PartCode=error.PartCode, Content="记录有重复!" }); } } - var codeList=importList.Select(p=>p.Code).Distinct().ToList(); + if (errors.Count > 0) + { + var fileContent = _excelService.Export(errors); + return new TestResult(fileContent.FileContents, ExportImportService.ContentType) { FileDownloadName = "错误信息" }; + } + foreach (var itm in importList) + { + itm.ItemName = partContainList.FirstOrDefault(p => p.Code == itm.ItemCode)?.Name; + itm.ItemDesc1 = partContainList.FirstOrDefault(p => p.Code == itm.ItemCode)?.Desc1; + itm.ItemDesc2 = partContainList.FirstOrDefault(p => p.Code == itm.ItemCode)?.Desc2; + } + 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 @@ -188,6 +223,8 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase, List>(newKittingInputList); + + foreach (var itm in kittingList) { var id = Guid.NewGuid(); @@ -196,8 +233,10 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase