HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx
@@ -68,12 +68,12 @@ const formItems = reactive([ // åºç¡ä¿¡æ¯ { label: 'ç©æç¼å·', prop: 'materialNo', label: 'ç©æåå·', prop: 'materialModel', el: 'input', placeholder: '请è¾å ¥ç©æç¼å·', placeholder: '请è¾å ¥ç©æåå·', rules: [ { required: true, message: 'ç©æç¼å·ä¸è½ä¸ºç©º', trigger: 'blur' }, { required: true, message: 'ç©æåå·ä¸è½ä¸ºç©º', trigger: 'blur' }, { max: 50, message: 'é¿åº¦ä¸è½è¶ è¿50个å符', trigger: 'blur' }, ], }, @@ -210,7 +210,7 @@ const onConfirm = async () => { await formRef.value?.validate() const data = { materialNo: formData.value.materialNo, materialModel: formData.value.materialModel, materialName: formData.value.materialName, containerNo: formData.value.containerNo, stockNumber: formData.value.stockNumber, @@ -302,7 +302,7 @@ ) const res = data?.items[0] formData.value = { materialNo: res.materialNo, materialModel: res.materialModel, materialName: res.materialName, containerNo: res.containerNo, stockNumber: res.stockNumber, HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/LMesCallMaterialInput.cs
@@ -26,4 +26,15 @@ /// </summary> public string? MaterialMode { get; set; } } /// <summary> /// æ£ååºå /// </summary> public class ReduceInput: LMesCallMaterialInput { /// <summary> /// åºä½å· /// </summary> public string PlaceNo { get; set; } } } HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MoveStockInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,63 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto { /// <summary> /// åºåè½¬ç§»åæ° /// </summary> public class MoveStockInput { /// <summary> /// ä»»å¡å· /// </summary> public string TaskNo { get; set; } /// <summary> /// åæ®å· /// </summary> public string OrderNo { get; set; } /// <summary> /// ç©æåç§° /// </summary> public string MaterialName { get; set; } /// <summary> /// 容å¨ç¼å· /// </summary> public string? ContainerNo { get; set; } /// <summary> /// ç©æç¼å· /// </summary> public string MaterialNo { get; set; } /// <summary> /// åºåæ°é /// </summary> public int StockNumber { get; set; } /// <summary> /// ç©ææ¹æ¬¡ /// </summary> public string? MaterialBatch { get; set; } /// <summary> /// æºå/è§æ ¼ /// </summary> public string? MaterialModel { get; set; } /// <summary> /// èµ·å§åºä½ /// </summary> public string SourcePlace { get; set; } /// <summary> /// ç®æ åºä½ /// </summary> public string ToPlace { get; set; } } } HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/ReduceStockInput{.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto { /// <summary> /// æ£ååºåå ¥åº /// </summary> public class ReduceStockInput { /// <summary> /// ä»»å¡å· /// </summary> public string TaskNo { get; set; } /// <summary> /// åæ®å· /// </summary> public string OrderNo { get; set; } /// <summary> /// ç©æåç§° /// </summary> public string MaterialName { get; set; } /// <summary> /// 容å¨ç¼å· /// </summary> public string? ContainerNo { get; set; } /// <summary> /// ç©æç¼å· /// </summary> public string MaterialNo { get; set; } /// <summary> /// åºåæ°é /// </summary> public int StockNumber { get; set; } /// <summary> /// ç©ææ¹æ¬¡ /// </summary> public string? MaterialBatch { get; set; } /// <summary> /// æºå/è§æ ¼ /// </summary> public string? MaterialModel { get; set; } /// <summary> /// åºä½ç¼å· /// </summary> public string? PlaceNo { get; set; } } } HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateDto.cs
@@ -16,4 +16,14 @@ /// æ¯å¦ç¦ç¨ /// </summary> public bool? IsDisabled { get; set; } = false; /// <summary> /// ä»»å¡å· /// </summary> public string TaskNo { get; set; } /// <summary> /// åæ®ç¼å· /// </summary> public string OrderNo { get; set; } } HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsBindInStockAppService.cs
@@ -1,4 +1,5 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.BindInstockDto; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; using System; using System.Collections.Generic; using System.Linq; @@ -17,7 +18,7 @@ /// </summary> /// <param name="input"></param> /// <returns></returns> Task BindMaterialContaienrAsync(BindInstockInput input); Task<WmsMaterialStockDto> BindMaterialContaienrAsync(BindInstockInput input); /// <summary> /// ç»çå ¥åº HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs
@@ -1,5 +1,7 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; using CMS.Plugin.HIAWms.Domain.Shared.Enums; using System; using System.Collections.Generic; using System.Linq; @@ -26,6 +28,19 @@ /// <param name="requiredNum"></param> /// <param name="materialNo"></param> /// <returns></returns> Task<Dictionary<WmsMaterialStockDto, int>> FindStockAsync(string materialModel, int requiredNum, string materialNo = ""); Task<Dictionary<WmsMaterialStockDto, int>> FindStockAsync(string materialModel, int requiredNum, string placeNo = "", PlaceTypeEnum placeType = PlaceTypeEnum.YUANLIAOKUWEI, string materialNo = ""); /// <summary> /// æ£ååºå /// </summary> /// <returns></returns> Task<List<WmsMaterialStockDto>> ReduceMaterialStockAsync(ReduceStockInput input); /// <summary> /// åºå转移 /// </summary> /// <param name="input"></param> /// <returns></returns> Task<List<WmsMaterialStockDto>> MoveMaterialStock(MoveStockInput input); } } HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs
@@ -2,6 +2,7 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; using CMS.Plugin.HIAWms.Application.Contracts.Services; using CMS.Plugin.HIAWms.Domain.Shared.Enums; using CMS.Plugin.HIAWms.Domain.WmsMaterials; using CMS.Plugin.HIAWms.Domain.WmsTask; using Microsoft.Extensions.DependencyInjection; @@ -22,6 +23,7 @@ { private readonly IWmsTaskRepository _wmsTaskRepository; private readonly IWmsMaterialRepository _wmsMaterialRepository; private readonly IWmsCommonAppService _wmsCommonAppService; private readonly IWmsInOutStockOrderAppService _wmsInOutStockOrderAppService; private readonly IWmsOutStockAppService _wmsOutStockOrderAppService; private readonly IServiceProvider _serviceProvider; @@ -31,13 +33,15 @@ IWmsInOutStockOrderAppService wmsInOutStockOrderAppService, IWmsOutStockAppService wmsOutStockOrderAppService , IServiceProvider serviceProvider) IServiceProvider serviceProvider, IWmsCommonAppService wmsCommonAppService) { _wmsTaskRepository = wmsTaskRepository; _wmsMaterialRepository = wmsMaterialRepository; _wmsInOutStockOrderAppService = wmsInOutStockOrderAppService; _wmsOutStockOrderAppService = wmsOutStockOrderAppService; _serviceProvider = serviceProvider; _wmsCommonAppService = wmsCommonAppService; } /// <summary> @@ -116,5 +120,34 @@ return result; } /// <summary> /// LMesåºåº /// </summary> /// <returns></returns> public async Task LMesOutStockAsync(ReduceInput input) { if (input == null) { throw new UserFriendlyException("åºåºåæ°é误"); } using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using var uow = unitOfWorkManager.Begin(requiresNew: true); if (string.IsNullOrEmpty(input.MaterialMode)) { throw new UserFriendlyException("åºåºåå·ä¸è½ä¸ºç©º"); } var reduceInput = new ReduceStockInput { MaterialModel = input.MaterialMode, StockNumber = input.Quantity, PlaceNo = input.PlaceNo, }; await _wmsCommonAppService.ReduceMaterialStockAsync(reduceInput); await uow.SaveChangesAsync(); } } } HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAppService.cs
@@ -64,7 +64,7 @@ _serviceProvider = serviceProvider; } public async Task BindMaterialContaienrAsync(BindInstockInput input) public async Task<WmsMaterialStockDto> BindMaterialContaienrAsync(BindInstockInput input) { using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); @@ -134,16 +134,19 @@ MaterialName = material.MaterialName, MaterialBatch = input.MaterialBatch, StockNumber = input.StockNumber, CheckStatus = Domain.Shared.Enums.MaterialCheckStatusEnum.HEGE, IsLock = Domain.Shared.Enums.YesNoEnum.N, CheckStatus = MaterialCheckStatusEnum.HEGE, IsLock = YesNoEnum.N, PlaceNo = input.PlaceNo, ContainerNo = containerNo, EmptyContainer = Domain.Shared.Enums.YesNoEnum.N, MaterialModel = input.MaterialModel, EmptyContainer = YesNoEnum.N, }; await _wmsMaterialStockAppService.CreateAsync(materialStock); var result = await _wmsMaterialStockAppService.CreateAsync(materialStock); await uow.SaveChangesAsync(); await uow.CompleteAsync(); return result; } HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
@@ -2,10 +2,13 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; using CMS.Plugin.HIAWms.Application.Contracts.Services; using CMS.Plugin.HIAWms.Domain.Shared.Enums; 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.Extension; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; @@ -13,6 +16,7 @@ using System.Text; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.Uow; namespace CMS.Plugin.HIAWms.Application.Implements { @@ -24,15 +28,21 @@ private readonly IWmsMaterialRepository _wmsMaterialRepository; private readonly IWmsPlaceRepository _wmsPlaceRepository; private readonly IWmsMaterialStockRepository _wmsMaterialStockRepository; private readonly IWmsInOutStockRecordRepository _wmsInOutStockRecordRepository; private readonly IServiceProvider _serviceProvider; public WmsCommonAppService(IWmsMaterialRepository wmsMaterialRepository, IWmsPlaceRepository wmsPlaceRepository, IWmsMaterialStockRepository wmsMaterialStockRepository ) , IServiceProvider serviceProvider, IWmsInOutStockRecordRepository wmsInOutStockRecordRepository) { _wmsMaterialRepository = wmsMaterialRepository; _wmsPlaceRepository = wmsPlaceRepository; _wmsMaterialStockRepository = wmsMaterialStockRepository; _serviceProvider = serviceProvider; _wmsInOutStockRecordRepository = wmsInOutStockRecordRepository; } @@ -114,14 +124,28 @@ /// <param name="requiredNum"></param> /// <param name="materialNo"></param> /// <returns></returns> public async Task<Dictionary<WmsMaterialStockDto, int>> FindStockAsync(string materialModel, int requiredNum, string materialNo = "") public async Task<Dictionary<WmsMaterialStockDto, int>> FindStockAsync(string materialModel, int requiredNum, string placeNo = "", PlaceTypeEnum placeType = PlaceTypeEnum.YUANLIAOKUWEI, string materialNo = "") { var allocation = new Dictionary<WmsMaterialStockDto, int>(); // <åºä½å·, åºåºæ°> // 1. è·åææåºåï¼æé¤éå®åºåï¼ var input = new GetWmsMaterialStockInput(); var whereConditions = DynamicGetQueryParams(new GetWmsMaterialStockInput()); var stockList = (await _wmsMaterialStockRepository.GetListAsync(whereConditions)) .Where(x => x.IsLock == Domain.Shared.Enums.YesNoEnum.N) .Where(x=>x.StorageTypeNo == Domain.Shared.Enums.PlaceTypeEnum.YUANLIAOKUWEI) .Where(x => x.StorageTypeNo == placeType) .ToList(); if (!string.IsNullOrEmpty(placeNo)) { var stock = stockList.Where(x => x.PlaceNo == placeNo).FirstOrDefault(); if (stock.StockNumber < requiredNum) { throw new UserFriendlyException($"åºä½{placeNo}åºåä¸è¶³,å¯ç¨: {stock.StockNumber}, 缺: {requiredNum - stock.StockNumber}"); } allocation.Add(ObjectMapper.Map<WmsMaterialStock, WmsMaterialStockDto>(stock), requiredNum); return allocation; } // 2. çéå¹é ç©æ var availableStocklist = stockList @@ -141,7 +165,6 @@ } // 4. 计ç®ååºä½åºåºæ°é var allocation = new Dictionary<WmsMaterialStockDto, int>(); // <åºä½å·, åºåºæ°> int remaining = requiredNum; foreach (var stock in availableStocks) @@ -173,5 +196,154 @@ return whereConditions; } /// <summary> /// æ£ååºå /// </summary> /// <returns></returns> public async Task<List<WmsMaterialStockDto>> ReduceMaterialStockAsync(ReduceStockInput input) { using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using var uow = unitOfWorkManager.Begin(requiresNew: true); var materialModel = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel); if (materialModel == null) { throw new UserFriendlyException("ç©æåå·ä¸åå¨"); } var placeInfo = await _wmsPlaceRepository.FindByNameAsync(input.PlaceNo); if (placeInfo == null) { throw new UserFriendlyException("åºä½ä¿¡æ¯ä¸åå¨"); } var stockresult = await FindStockAsync(input.MaterialModel, input.StockNumber, input.PlaceNo, placeInfo.StorageTypeNo); if (stockresult == null) { throw new UserFriendlyException("å½åæ åºå"); } var recordList = new List<WmsInOutStockRecord>(); var delStock = new List<WmsMaterialStock>(); foreach (var kvp in stockresult) { var stock = kvp.Key; // WmsPlace对象 var quantity = kvp.Value; // åé æ°é // æ£ååºå var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = input.MaterialModel, PlaceNo = stock.PlaceNo }); var reduceStockList = stockList.OrderBy(x => x.InStockTime).Take(quantity).ToList(); delStock.AddRange(reduceStockList); // åºå ¥åºè®°å½ foreach (var item in reduceStockList) { var record = new WmsInOutStockRecord { TaskNo = input.TaskNo, OrderNo = input.OrderNo, StockType = StockTypeEnum.Move, ContainerNo = item.ContainerNo, MaterialId = item.MaterialId, MaterialModel = item.MaterialModel, MaterialName = item.MaterialName, MaterialNo = item.MaterialNo, MaterialBatch = item.MaterialBatch, SourcePlace = item.PlaceNo, ToPlace = "åºåº", OperateTime = DateTime.Now, Remark = "åºåºæ£å", }; recordList.Add(record); } } await _wmsMaterialStockRepository.DeleteManyAsync(delStock); await _wmsInOutStockRecordRepository.InsertManyAsync(recordList); await uow.SaveChangesAsync(); await uow.CompleteAsync(); var result = ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(delStock); return result; } /// <summary> /// åºå转移 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task<List<WmsMaterialStockDto>> MoveMaterialStock(MoveStockInput input) { using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using var uow = unitOfWorkManager.Begin(requiresNew: true); var materialModel = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel); if (materialModel == null) { throw new UserFriendlyException("ç©æåå·ä¸åå¨"); } var placeInfo = await _wmsPlaceRepository.FindByNameAsync(input.SourcePlace); if (placeInfo == null) { throw new UserFriendlyException("æ¥æºåºä½ä¿¡æ¯ä¸åå¨"); } var toPlace = await _wmsPlaceRepository.FindByNameAsync(input.ToPlace); if (toPlace == null) { throw new UserFriendlyException("ç®æ åºä½ä¿¡æ¯ä¸åå¨"); } var stockresult = await FindStockAsync(input.MaterialModel, input.StockNumber, input.SourcePlace, placeInfo.StorageTypeNo); if (stockresult == null) { throw new UserFriendlyException("å½åæ åºå"); } var recordList = new List<WmsInOutStockRecord>(); var result = new List<WmsMaterialStockDto>(); foreach (var kvp in stockresult) { var stock = kvp.Key; // WmsPlace对象 var quantity = kvp.Value; // åé æ°é // æ£å转移 var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = input.MaterialModel, PlaceNo = stock.PlaceNo }); var reduceStockList = stockList.OrderBy(x => x.InStockTime).Take(quantity).ToList(); // åºå ¥åºè®°å½ foreach (var item in reduceStockList) { var record = new WmsInOutStockRecord { TaskNo = input.TaskNo, OrderNo = input.OrderNo, StockType = StockTypeEnum.Move, ContainerNo = item.ContainerNo, MaterialId = item.MaterialId, MaterialModel = item.MaterialModel, MaterialName = item.MaterialName, MaterialNo = item.MaterialNo, MaterialBatch = item.MaterialBatch, SourcePlace = item.PlaceNo, ToPlace = input.ToPlace, OperateTime = DateTime.Now, Remark = "åºåºæ£å", }; recordList.Add(record); item.PlaceNo = input.ToPlace; } await _wmsMaterialStockRepository.UpdateManyAsync(reduceStockList); await _wmsInOutStockRecordRepository.InsertManyAsync(recordList); result.AddRange(ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(reduceStockList)); } await uow.SaveChangesAsync(); await uow.CompleteAsync(); return result; } } } HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
@@ -1,9 +1,13 @@ 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; @@ -11,8 +15,10 @@ 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; @@ -29,6 +35,8 @@ 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> @@ -41,7 +49,10 @@ IWmsPlaceRepository wmsplaceRepository, IWmsAreaRepository wmsareaRepository , IServiceProvider serviceProvider) IServiceProvider serviceProvider, IWmsInOutStockRecordAppService wmspInOutStockRecordAppService, IWmsInOutStockRecordRepository wmsInOutStockRecordRepository ) { _wmsmaterialstockRepository = wmsmaterialstockRepository; _wmsMaterialRepository = wmsMaterialRepository; @@ -49,6 +60,8 @@ _wmsplaceRepository = wmsplaceRepository; _wmsareaRepository = wmsareaRepository; _serviceProvider = serviceProvider; _wmspInOutStockRecordAppService = wmspInOutStockRecordAppService; _wmsInOutStockRecordRepository = wmsInOutStockRecordRepository; } /// <inheritdoc /> @@ -162,12 +175,13 @@ 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("ç©æä¿¡æ¯ä¸åå¨"); @@ -183,10 +197,10 @@ 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); @@ -200,12 +214,12 @@ 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); @@ -229,6 +243,7 @@ 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(); @@ -237,8 +252,27 @@ 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) HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/StockTypeEnum.cs
@@ -24,5 +24,11 @@ /// </summary> [Description("åºåº")] OutBound = 2, /// <summary> /// 转移 /// </summary> [Description("转移")] Move = 3, } } HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialStockController.cs
@@ -58,7 +58,7 @@ } /// <summary> /// ååºæ¥æç» /// åºåæç» /// </summary> /// <param name="input"></param> /// <returns></returns>