pan
2025-11-24 025c515a6945fbedcf772bdd595413f50596fd47
提交
已修改2个文件
57 ■■■■■ 文件已修改
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs
@@ -549,9 +549,11 @@
            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
@@ -562,18 +564,29 @@
                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;
        }
@@ -608,8 +621,7 @@
            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}");
        }
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -28,34 +28,37 @@
        }
        [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;
@@ -70,7 +73,7 @@
        [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>