Browse Source

Merge branch 'dev_DY_CC' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_DY_CC

dev_DY_CC
郑勃旭 1 year ago
parent
commit
6180b50e07
  1. 20
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs
  2. 43
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs

20
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箱")] [Display(Name = "Kitting箱")]
public class KittingImportInput : SfsBaseDataImportInputBase public class KittingImportInput : SfsBaseDataImportInputBase
{ {
[Display(Name = "Kitting编码")]
public string Code { get; set; }
/// <summary>
/// Kitting名称
/// </summary>
[Display(Name = "Kitting名称")]
public string Name { get; set; }
/// <summary> /// <summary>
/// Kitting编码 /// Kitting编码
/// </summary> /// </summary>
@ -34,14 +46,6 @@ public class KittingImportInput : SfsBaseDataImportInputBase
[Display(Name = "Kitting编码")]
public string Code { get; set; }
/// <summary>
/// Kitting名称
/// </summary>
[Display(Name = "Kitting名称")]
public string Name { get; set; }

43
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs

@ -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,13 +159,40 @@ 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="记录有重复!" });
} }
} }
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 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();
var newCodeList = from itm in codeList var newCodeList = from itm in codeList
@ -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

Loading…
Cancel
Save