ÎļþÃû´Ó HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs ÐÞ¸Ä |
| | |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.WmsTask; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements |
| | | { |
| | | /// <summary> |
| | | /// ç»çå
¥åº |
| | | /// </summary> |
| | | public class WmsBindInStockAssService : CMSPluginAppService |
| | | public class WmsBindInStockAppService : CMSPluginAppService, IWmsBindInStockAppService |
| | | { |
| | | private readonly IWmsMaterialRepository _wmsMaterialRepository; |
| | | private readonly IWmsContainerRepository _wmsContainerRepository; |
| | |
| | | private readonly IWmsCommonAppService _wmsCommonAppService; |
| | | private readonly IWmsTaskRepository _wmsTaskRepository; |
| | | private readonly IWmsTaskAppService _wmsTaskAppService; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | public WmsBindInStockAssService(IWmsMaterialRepository wmsMaterialRepository, |
| | | public WmsBindInStockAppService(IWmsMaterialRepository wmsMaterialRepository, |
| | | IWmsContainerRepository wmsContainerRepository, |
| | | IWmsPlaceRepository wmsPlaceRepository |
| | | , |
| | |
| | | IWmsMaterialStockAppService wmsMaterialStockAppService, |
| | | IWmsCommonAppService wmsCommonAppService, |
| | | IWmsTaskRepository wmsTaskRepository, |
| | | IWmsTaskAppService wmsTaskAppService) |
| | | IWmsTaskAppService wmsTaskAppService, |
| | | IServiceProvider serviceProvider) |
| | | { |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | | _wmsContainerRepository = wmsContainerRepository; |
| | |
| | | _wmsCommonAppService = wmsCommonAppService; |
| | | _wmsTaskRepository = wmsTaskRepository; |
| | | _wmsTaskAppService = wmsTaskAppService; |
| | | _serviceProvider = serviceProvider; |
| | | } |
| | | |
| | | public async Task BindMaterialContaienrAsync(BindInstockInput input) |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | if (string.IsNullOrEmpty(input.MaterialModel)) { throw new UserFriendlyException("è¯·éæ©åºä½ç¼å·"); } |
| | | if (string.IsNullOrEmpty(input.MaterialBatch)) { throw new UserFriendlyException("请è¾å
¥æ¹æ¬¡å·"); } |
| | | if (input.StockNumber <= 0) { throw new UserFriendlyException("å
¥åºæ°éå¿
须大äº0"); } |
| | |
| | | { |
| | | containerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString(); |
| | | } |
| | | var container = new WmsContainer |
| | | { |
| | | ContainerNo = containerNo, |
| | | ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI, |
| | | ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG, |
| | | }; |
| | | await _wmsContainerRepository.InsertAsync(container); |
| | | //var container = new WmsContainer |
| | | //{ |
| | | // ContainerNo = containerNo, |
| | | // ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI, |
| | | // ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG, |
| | | //}; |
| | | //var result = await _wmsContainerRepository.InsertAsync(container); |
| | | |
| | | var materialStock = new WmsMaterialStockCreateDto |
| | | { |
| | |
| | | EmptyContainer = Domain.Shared.Enums.YesNoEnum.N, |
| | | }; |
| | | await _wmsMaterialStockAppService.CreateAsync(materialStock); |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | } |
| | | |
| | | |
| | |
| | | public async Task BindInStockAsync(BindInstockInput input) |
| | | { |
| | | if (string.IsNullOrEmpty(input.PlaceNo)) { throw new UserFriendlyException("è¯·éæ©åºä½ç¼å·"); } |
| | | |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | input.ContainerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString(); |
| | | await BindMaterialContaienrAsync(input); |
| | |
| | | } |
| | | } |
| | | await _wmsTaskRepository.InsertManyAsync(taskList); |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | } |
| | | } |
| | | } |