| | |
| | | |
| | | return ValidationResult<bool>.Success(true); |
| | | } |
| | | |
| | | |
| | | private async Task<PickingResult> ExecutePickingLogic( |
| | | Dt_OutStockLockInfo lockInfo, Dt_OutboundOrderDetail orderDetail, Dt_StockInfoDetail stockDetail, |
| | | string orderNo, string palletCode, string barcode, decimal actualQty) |
| | | Dt_OutStockLockInfo lockInfo, Dt_OutboundOrderDetail orderDetail, Dt_StockInfoDetail stockDetail, |
| | | string orderNo, string palletCode, string barcode, decimal actualQty) |
| | | { |
| | | decimal stockQuantity = stockDetail.StockQuantity; |
| | | var result = new PickingResult |
| | |
| | | ActualPickedQty = actualQty |
| | | }; |
| | | |
| | | decimal finalPickedQty = actualQty; |
| | | |
| | | if (actualQty < stockQuantity) |
| | | { |
| | | // æå
åºæ¯ |
| | | await HandleSplitPacking(lockInfo, stockDetail, actualQty, stockQuantity, result); |
| | | finalPickedQty = actualQty; |
| | | } |
| | | else if (actualQty == stockQuantity) |
| | | { |
| | | // æ´å
æ£é |
| | | await HandleFullPicking(lockInfo, stockDetail, actualQty, result); |
| | | finalPickedQty = actualQty; |
| | | } |
| | | else |
| | | { |
| | | // é¨åæ£éï¼åºåä¸è¶³ï¼ |
| | | await HandlePartialPicking(lockInfo, stockDetail, actualQty, stockQuantity, result); |
| | | finalPickedQty = result.ActualPickedQty; // å¯è½è¢«è°æ´ |
| | | } |
| | | |
| | | // ç»ä¸æ´æ°è®¢åæ°æ®ï¼ææåæ¯é½ä»è¿éæ´æ°ï¼ |
| | | await UpdateOrderRelatedData(lockInfo.OrderDetailId, finalPickedQty, orderNo); |
| | | |
| | | return result; |
| | | } |
| | |
| | | result.FinalBarcode = newBarcode; |
| | | result.SplitResults.AddRange(CreateSplitResults(lockInfo, actualQty, remainingStockQty, newBarcode, stockDetail.Barcode)); |
| | | |
| | | await UpdateOrderRelatedData(lockInfo.OrderDetailId, actualQty, lockInfo.OrderNo); |
| | | |
| | | |
| | | _logger.LogInformation($"æå
åæ£æ´æ°è®¢åæç» - OrderDetailId: {lockInfo.OrderDetailId}, 忣æ°é: {actualQty}"); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | [HttpPost, Route("AddTestTask"), AllowAnonymous, MethodParamsValidate] |
| | | public WebResponseContent AddTest(WMSTaskDTO wMSTaskDTO) |
| | | public WebResponseContent AddTest(WMSTaskDTO wMSTaskDTO) |
| | | { |
| | | Dt_Task task = new Dt_Task |
| | | { |
| | | PalletCode =wMSTaskDTO. PalletCode , |
| | | PalletType =wMSTaskDTO. PalletType , |
| | | Roadway = "t", |
| | | TaskType =wMSTaskDTO. TaskType , |
| | | TaskStatus =wMSTaskDTO. TaskStatus , |
| | | SourceAddress =wMSTaskDTO. SourceAddress , |
| | | TargetAddress =wMSTaskDTO. TargetAddress , |
| | | CurrentAddress = "t", |
| | | NextAddress ="t" , |
| | | WarehouseId =wMSTaskDTO. WarehouseId , |
| | | OrderNo ="testt" , |
| | | Grade =wMSTaskDTO. Grade , |
| | | Dispatchertime = DateTime.Now , |
| | | PalletCode = wMSTaskDTO.PalletCode, |
| | | PalletType = wMSTaskDTO.PalletType, |
| | | Roadway = "t", |
| | | TaskType = wMSTaskDTO.TaskType, |
| | | TaskStatus = wMSTaskDTO.TaskStatus, |
| | | SourceAddress = wMSTaskDTO.SourceAddress, |
| | | TargetAddress = wMSTaskDTO.TargetAddress, |
| | | CurrentAddress = "t", |
| | | NextAddress = "t", |
| | | WarehouseId = wMSTaskDTO.WarehouseId, |
| | | OrderNo = "testt", |
| | | Grade = wMSTaskDTO.Grade, |
| | | Dispatchertime = DateTime.Now, |
| | | |
| | | }; |
| | | |
| | | Service.AddData(task); |
| | | |
| | | |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | |
| | | [HttpPost, Route("PalletOutboundTask"), AllowAnonymous, MethodParamsValidate] |
| | | [HttpPost, Route("PalletOutboundTask"), AllowAnonymous, MethodParamsValidate] |
| | | public async Task<WebResponseContent> PalletOutboundTask(string endStation, string palletCode = "") |
| | | { |
| | | |
| | | |
| | | var result = await Service.PalletOutboundTask(endStation, palletCode); |
| | | |
| | | return result; |
| | |
| | | [HttpPost, HttpGet, Route("GenerateOutboundTasks"), AllowAnonymous] |
| | | public async Task<WebResponseContent> GenerateOutboundTasks([FromBody] GenerateOutboundTasksDto data) |
| | | { |
| | | return await Service.GenerateOutboundTasksAsync(data.taskIds,data.outboundPlatform); |
| | | return await Service.GenerateOutboundTasksAsync(data.taskIds, data.outboundPlatform); |
| | | } |
| | | |
| | | /// <summary> |