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