|
@ -37,13 +37,21 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt |
|
|
|
|
|
|
|
|
private readonly IExportImportService _excelService; |
|
|
private readonly IExportImportService _excelService; |
|
|
|
|
|
|
|
|
|
|
|
private new readonly IItemBasicRepository _itmBasicRepository ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private readonly IKittingManager _manager; |
|
|
private readonly IKittingManager _manager; |
|
|
|
|
|
|
|
|
public KittingAppService(IKittingRepository repository, IDistributedCache<KittingDTO> cache, IKittingManager manager, IExportImportService excelService) : base(repository,cache) |
|
|
public KittingAppService(IKittingRepository repository, IDistributedCache<KittingDTO> cache, IKittingManager manager, |
|
|
|
|
|
IExportImportService excelService, |
|
|
|
|
|
IItemBasicRepository itmBasicRepository |
|
|
|
|
|
) : base(repository,cache) |
|
|
{ |
|
|
{ |
|
|
_repository = repository; |
|
|
_repository = repository; |
|
|
_manager = manager; |
|
|
_manager = manager; |
|
|
_excelService = excelService; |
|
|
_excelService = excelService; |
|
|
|
|
|
_itmBasicRepository = itmBasicRepository; |
|
|
//base.CreatePolicyName = KittingPermissions.Create;
|
|
|
//base.CreatePolicyName = KittingPermissions.Create;
|
|
|
//base.UpdatePolicyName = KittingPermissions.Update;
|
|
|
//base.UpdatePolicyName = KittingPermissions.Update;
|
|
|
//base.DeletePolicyName = KittingPermissions.Delete;
|
|
|
//base.DeletePolicyName = KittingPermissions.Delete;
|
|
@ -151,12 +159,39 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt |
|
|
var importList= _excelService.Import<KittingImportInput>(inputFileBytes).ToList(); |
|
|
var importList= _excelService.Import<KittingImportInput>(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 });//导入重复报错 //检测是否导入重复
|
|
|
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<KittingErrorDto> errors = new List<KittingErrorDto>(); |
|
|
List<KittingErrorDto> errors = new List<KittingErrorDto>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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()) |
|
|
if (checklist.Any()) |
|
|
{ |
|
|
{ |
|
|
foreach (var error in checklist) { |
|
|
foreach (var error in checklist) { |
|
|
errors.Add(new KittingErrorDto() { Code=error.Code,PartCode=error.PartCode, Content="记录有重复!" }); |
|
|
errors.Add(new KittingErrorDto() { Code=error.Code,PartCode=error.PartCode, Content="记录有重复!" }); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
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 codeList = importList.Select(p => p.Code).Distinct().ToList(); |
|
|
var includeList = query.Where(p => codeList.Contains(p.Code)).ToList(); |
|
|
var includeList = query.Where(p => codeList.Contains(p.Code)).ToList(); |
|
|
var existCodeList = includeList.Select(p => p.Code).ToList(); |
|
|
var existCodeList = includeList.Select(p => p.Code).ToList(); |
|
@ -188,6 +223,8 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt |
|
|
newKittingInputList.Add(kitting); |
|
|
newKittingInputList.Add(kitting); |
|
|
} |
|
|
} |
|
|
var kittingList = ObjectMapper.Map<List<KittingEditInput>, List<Kitting>>(newKittingInputList); |
|
|
var kittingList = ObjectMapper.Map<List<KittingEditInput>, List<Kitting>>(newKittingInputList); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var itm in kittingList) |
|
|
foreach (var itm in kittingList) |
|
|
{ |
|
|
{ |
|
|
var id = Guid.NewGuid(); |
|
|
var id = Guid.NewGuid(); |
|
@ -196,8 +233,10 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt |
|
|
{ |
|
|
{ |
|
|
detail.SetId(Guid.NewGuid()); |
|
|
detail.SetId(Guid.NewGuid()); |
|
|
detail.MasterId = id; |
|
|
detail.MasterId = id; |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
await _repository.InsertManyAsync(kittingList).ConfigureAwait(false); |
|
|
await _repository.InsertManyAsync(kittingList).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
#endregion
|
|
|
#endregion
|
|
|