heshaofeng
2025-11-26 1331e9edaf52ec0820dd1c7efc605127aa3a2c36
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -122,6 +122,10 @@
                    {
                        return WebResponseContent.Instance.Error($"未找到入库单明细信息");
                    }
                    if (inboundOrder.OrderStatus != InOrderStatusEnum.未开始.ObjToInt())
                    {
                        return WebResponseContent.Instance.Error($"该订单状态不允许修改");
                    }
                    List<Dt_InboundOrderDetail> inboundOrderDetails = new List<Dt_InboundOrderDetail>();
                    List<Dt_InboundOrderDetail> updateInboundOrderDetails = new List<Dt_InboundOrderDetail>();
                    List<int> detailIds = new List<int>();
@@ -225,6 +229,10 @@
                    if (inboundOrder.Details == null || inboundOrder.Details.Count == 0)
                    {
                        return WebResponseContent.Instance.Error($"未找到入库单明细信息");
                    }
                    if (inboundOrder.OrderStatus != InOrderStatusEnum.未开始.ObjToInt())
                    {
                        return WebResponseContent.Instance.Error($"该订单状态不允许删除");
                    }
                    //Db.DeleteNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
                    _unitOfWorkManage.BeginTran();
@@ -639,25 +647,31 @@
            {
                return WebResponseContent.Instance.Error("托盘号不能为空");
            }
           var stock= _stockRepository.Db.Queryable<Dt_StockInfo>().Includes(o=>o.Details).First(x => x.PalletCode == palletCode );
           var stock= _stockRepository.Db.Queryable<Dt_StockInfo>().Includes(o=>o.Details).First(x => x.PalletCode == palletCode &&  x.StockStatus ==(int)StockStatusEmun.组盘暂存);
            if (stock == null)
            {
                return WebResponseContent.Instance.Error($"未找到托盘号{palletCode}对应的库存记录");
            }
            if(stock.Details == null || !stock.Details.Any())
            {
                _stockRepository.DeleteData(stock);
                return WebResponseContent.Instance.OK();
            }
            //  èŽ·å–åº“å­˜è¯¦æƒ…å…³è”çš„æ‰€æœ‰å…¥åº“å•å·
            var relatedOrderNos = stock.Details.Select(d => d.OrderNo).First();
            //  æŸ¥è¯¢æ‰€æœ‰å…³è”的入库单(含详情)
            var inboundOrders = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>()
                .Includes(x => x.Details)
                .Where(x => relatedOrderNos==x.InboundOrderNo)
                .Includes(x => x.Details)
                .Where(x => relatedOrderNos == x.InboundOrderNo)
                .First();
            var barcodes = stock.Details.Select(d => d.Barcode).ToList();
                // åŒ¹é…åº“存条码对应的入库单明细
                var matchedInboundDetails = inboundOrders.Details
                    ?.Where(d => barcodes.Contains(d.Barcode))
                    .ToList();
            // åŒ¹é…åº“存条码对应的入库单明细
            var matchedInboundDetails = inboundOrders.Details
                ?.Where(d => barcodes.Contains(d.Barcode))
                .ToList();
            foreach (var detail in matchedInboundDetails)
            {
                detail.ReceiptQuantity = 0;
@@ -667,7 +681,8 @@
            _stockDetailRepository.DeleteData(stock.Details);
            _stockRepository.DeleteData(stock);
            return WebResponseContent.Instance.OK();
            return WebResponseContent.Instance.OK("托盘撤销成功");
        }
    }
}