|
@ -3,13 +3,18 @@ using System.Collections.Generic; |
|
|
using System.Linq; |
|
|
using System.Linq; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
using Castle.Components.DictionaryAdapter; |
|
|
using Castle.Components.DictionaryAdapter; |
|
|
|
|
|
using DocumentFormat.OpenXml.Spreadsheet; |
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
using Volo.Abp; |
|
|
using Volo.Abp; |
|
|
|
|
|
using Volo.Abp.Guids; |
|
|
|
|
|
using Volo.Abp.ObjectMapping; |
|
|
using Win_in.Sfs.Basedata.Application.Contracts; |
|
|
using Win_in.Sfs.Basedata.Application.Contracts; |
|
|
using Win_in.Sfs.Basedata.Boms.DTOs; |
|
|
using Win_in.Sfs.Basedata.Boms.DTOs; |
|
|
using Win_in.Sfs.Basedata.Domain; |
|
|
using Win_in.Sfs.Basedata.Domain; |
|
|
using Win_in.Sfs.Basedata.Domain.Shared; |
|
|
using Win_in.Sfs.Basedata.Domain.Shared; |
|
|
|
|
|
using Win_in.Sfs.Shared.Application; |
|
|
|
|
|
using Win_in.Sfs.Shared.Event; |
|
|
using Win_in.Sfs.Wms.Store.Application.Contracts; |
|
|
using Win_in.Sfs.Wms.Store.Application.Contracts; |
|
|
using Win_in.Sfs.Wms.Store.Domain; |
|
|
using Win_in.Sfs.Wms.Store.Domain; |
|
|
using Win_in.Sfs.Wms.Store.Domain.Shared; |
|
|
using Win_in.Sfs.Wms.Store.Domain.Shared; |
|
@ -35,20 +40,25 @@ public class KittingPackagingNoteAppService |
|
|
private readonly IChassisOperationSequenceAppService _chassisOperationSequenceAppService; |
|
|
private readonly IChassisOperationSequenceAppService _chassisOperationSequenceAppService; |
|
|
private readonly IBomAppService _bomAppService; |
|
|
private readonly IBomAppService _bomAppService; |
|
|
private readonly IKittingAppService _kittingAppService; |
|
|
private readonly IKittingAppService _kittingAppService; |
|
|
|
|
|
private readonly IKittingPackagingNoteManager _kittingPackagingNoteManager; |
|
|
|
|
|
|
|
|
public KittingPackagingNoteAppService( |
|
|
public KittingPackagingNoteAppService( |
|
|
IKittingPackagingNoteRepository repository, IChassisOperationSequenceAppService chassisOperationSequenceAppService, IBomAppService bomAppService, IKittingAppService kittingAppService) : base(repository) |
|
|
IKittingPackagingNoteRepository repository, IChassisOperationSequenceAppService chassisOperationSequenceAppService, IBomAppService bomAppService, IKittingAppService kittingAppService, IKittingPackagingNoteManager kittingPackagingNoteManager) : base(repository) |
|
|
{ |
|
|
{ |
|
|
_chassisOperationSequenceAppService = chassisOperationSequenceAppService; |
|
|
_chassisOperationSequenceAppService = chassisOperationSequenceAppService; |
|
|
_bomAppService = bomAppService; |
|
|
_bomAppService = bomAppService; |
|
|
_kittingAppService = kittingAppService; |
|
|
_kittingAppService = kittingAppService; |
|
|
|
|
|
_kittingPackagingNoteManager = kittingPackagingNoteManager; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
[HttpPost("")] |
|
|
[HttpPost("")] |
|
|
public override async Task<KittingPackagingNoteDTO> CreateAsync(KittingPackagingNoteEditInput input) |
|
|
public override async Task<KittingPackagingNoteDTO> CreateAsync(KittingPackagingNoteEditInput input) |
|
|
{ |
|
|
{ |
|
|
var sortNumber=input.DepDetails.Max(p => p.ChassisSortNumber); |
|
|
var sortNumber=input.DepDetails.Max(p => p.ChassisSortNumber); |
|
|
await _chassisOperationSequenceAppService.UpdateChassisSortNumberByKittingCodeAsync(input.KittingCode,sortNumber).ConfigureAwait(false); |
|
|
var maxChassisDetailInputs = input.DepDetails.First(p => p.ChassisSortNumber== sortNumber); |
|
|
|
|
|
input.Details = new EditableList<KittingPackagingNoteDetailInput>(); |
|
|
|
|
|
|
|
|
|
|
|
await _chassisOperationSequenceAppService.UpdateChassisSortNumberByKittingCodeAsync(input.KittingCode,sortNumber, maxChassisDetailInputs.ChassisNumber).ConfigureAwait(false); |
|
|
//所有底盘转换为总成的零件号
|
|
|
//所有底盘转换为总成的零件号
|
|
|
var chassisItemCode = new List<string>(); |
|
|
var chassisItemCode = new List<string>(); |
|
|
var listItemCode=input.DepDetails.Select(p => p.ItemCode); |
|
|
var listItemCode=input.DepDetails.Select(p => p.ItemCode); |
|
@ -91,6 +101,12 @@ public class KittingPackagingNoteAppService |
|
|
} |
|
|
} |
|
|
input.DepDetails.ForEach(p=>p.KittingCode=input.KittingCode); |
|
|
input.DepDetails.ForEach(p=>p.KittingCode=input.KittingCode); |
|
|
|
|
|
|
|
|
return await base.CreateAsync(input).ConfigureAwait(false); |
|
|
var entity = input.ToObject<KittingPackagingNote>(); |
|
|
|
|
|
entity.SetIdAndNumberWithDetails(GuidGenerator, await GenerateNumberAsync(typeof(KittingPackagingNote).Name, entity.ActiveDate).ConfigureAwait(false)); |
|
|
|
|
|
entity.DepDetails.ForEach(p=>p.SetIdAndNumber(GuidGenerator, entity.Id, entity.Number)); |
|
|
|
|
|
|
|
|
|
|
|
var result=await _repository.InsertAsync(entity).ConfigureAwait(false); |
|
|
|
|
|
await LocalEventBus.PublishAsync(new SfsCreatedEntityEventData<KittingPackagingNote>(result), false).ConfigureAwait(false); |
|
|
|
|
|
return ObjectMapper.Map<KittingPackagingNote, KittingPackagingNoteDTO>(result); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|