| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using SqlKata; |
| | | using System.Linq.Expressions; |
| | | using System.Text.Json; |
| | | using System.Threading.Tasks; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | |
| | | private readonly IWmsContainerRepository _wmscontainerRepository; |
| | | private readonly IWmsPlaceRepository _wmsplaceRepository; |
| | | private readonly IWmsAreaRepository _wmsareaRepository; |
| | | private readonly IWmsInOutStockRecordAppService _wmspInOutStockRecordAppService; |
| | | private readonly IWmsInOutStockRecordRepository _wmsInOutStockRecordRepository; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | /// <summary> |
| | |
| | | IWmsPlaceRepository wmsplaceRepository, |
| | | IWmsAreaRepository wmsareaRepository |
| | | , |
| | | IServiceProvider serviceProvider) |
| | | IServiceProvider serviceProvider, |
| | | IWmsInOutStockRecordAppService wmspInOutStockRecordAppService, |
| | | IWmsInOutStockRecordRepository wmsInOutStockRecordRepository |
| | | ) |
| | | { |
| | | _wmsmaterialstockRepository = wmsmaterialstockRepository; |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | |
| | | _wmsplaceRepository = wmsplaceRepository; |
| | | _wmsareaRepository = wmsareaRepository; |
| | | _serviceProvider = serviceProvider; |
| | | _wmspInOutStockRecordAppService = wmspInOutStockRecordAppService; |
| | | _wmsInOutStockRecordRepository = wmsInOutStockRecordRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | //var exist = await _wmsmaterialstockRepository.NameExistAsync(input.MaterialNo); |
| | | //if (exist) |
| | | //{ |
| | | // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]); |
| | | //} |
| | | var material = await _wmsMaterialRepository.FindByNameAsync(input.MaterialNo); |
| | | var materialModel = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel); |
| | | if(materialModel == null) |
| | | { |
| | | throw new UserFriendlyException("物料型号不存在"); |
| | | } |
| | | |
| | | var material = await _wmsMaterialRepository.FindByNameAsync(materialModel.MaterialNo); |
| | | if (material == null) |
| | | { |
| | | throw new UserFriendlyException("物料信息不存在"); |
| | |
| | | wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N"); |
| | | wmsmaterialstock.MaterialName = material.MaterialName; |
| | | |
| | | wmsmaterialstock.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI; |
| | | wmsmaterialstock.ContainerType = container == null ? Domain.Shared.Enums.ContainerTypeEnum.XUNI : container.ContainerType; |
| | | wmsmaterialstock.StorageTypeNo = Domain.Shared.Enums.PlaceTypeEnum.XUNIKUWEI; |
| | | wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.DAIRU; |
| | | wmsmaterialstock.ContainerStatus = ContainerStatusEnum.KUWEI; |
| | | wmsmaterialstock.ContainerType = container == null ? ContainerTypeEnum.XUNI : container.ContainerType; |
| | | wmsmaterialstock.StorageTypeNo = PlaceTypeEnum.XUNIKUWEI; |
| | | wmsmaterialstock.PlaceStatus = PlaceStatusEnum.DAIRU; |
| | | if (!string.IsNullOrEmpty(input.PlaceNo)) |
| | | { |
| | | var place = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo); |
| | |
| | | throw new UserFriendlyException("库位库区信息不存在"); |
| | | } |
| | | |
| | | wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO; |
| | | wmsmaterialstock.PlaceStatus = PlaceStatusEnum.CUNHUO; |
| | | wmsmaterialstock.StorageTypeNo = place.StorageTypeNo; |
| | | wmsmaterialstock.AreaCode = place.AreaCode; |
| | | wmsmaterialstock.AreaName = area.AreaName; |
| | | |
| | | place.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO; |
| | | place.PlaceStatus = PlaceStatusEnum.CUNHUO; |
| | | place.Islock = input.IsLock; |
| | | |
| | | await _wmsplaceRepository.UpdateAsync(place); |
| | |
| | | wmsmaterialstock.InStockTime = DateTime.Now; |
| | | |
| | | var stockList = new List<WmsMaterialStock>(); |
| | | var recordList = new List<WmsInOutStockRecord>(); |
| | | for (int i = 0; i < input.StockNumber; i++) |
| | | { |
| | | var stock = new WmsMaterialStock(); |
| | |
| | | stock.MaterialId = Guid.NewGuid().ToString("N"); |
| | | stock.StockNumber = 1; |
| | | stockList.Add(stock); |
| | | } |
| | | |
| | | // 添加库存记录 |
| | | var record = new WmsInOutStockRecord |
| | | { |
| | | TaskNo = input.TaskNo, |
| | | OrderNo = input.OrderNo, |
| | | StockType = StockTypeEnum.InBound, |
| | | ContainerNo = stock.ContainerNo, |
| | | MaterialId = stock.MaterialId, |
| | | MaterialModel = stock.MaterialModel, |
| | | MaterialName = stock.MaterialName, |
| | | MaterialNo = stock.MaterialNo, |
| | | MaterialBatch = stock.MaterialBatch, |
| | | SourcePlace = "添加库存", |
| | | ToPlace = stock.PlaceNo, |
| | | OperateTime = DateTime.Now, |
| | | Remark = "入库", |
| | | }; |
| | | recordList.Add(record); |
| | | } |
| | | await _wmsInOutStockRecordRepository.InsertManyAsync(recordList); |
| | | await _wmsmaterialstockRepository.InsertManyAsync(stockList); |
| | | |
| | | if (container == null) |