1
wangxinhui
2026-01-29 c67c39f00fde325f3ff3f407c6b8b7416d5152c1
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs
@@ -194,10 +194,9 @@
                    {
                        //float stockMaxQty = stockInfo.Details.Max(x => x.StockQuantity);
                        //float stockMinQty = stockInfo.Details.Min(x => x.StockQuantity);
                        Dt_StockInfoDetail? addstockInfoDetail = stockInfo.Details?.FirstOrDefault();
                        addstockInfoDetail.Id = 0;
                        addstockInfoDetail.StockQuantity = (takeStockOrderDetail.Qty - takeStockOrderDetail.SysQty);
                        addStockDetails.Add(addstockInfoDetail);
                        Dt_StockInfoDetail addstockInfoDetail = stockInfo.Details.OrderByDescending(x=>x.Id).FirstOrDefault();
                        addstockInfoDetail.StockQuantity = takeStockOrderDetail.Qty - takeStockOrderDetail.SysQty;
                        updateStockDetails.Add(addstockInfoDetail);
                    }
                    else if (takeStockOrderDetail.Qty==0) //鐩樹簭
                    {
@@ -266,14 +265,6 @@
                    {
                        _stockInfoDetailRepository.DeleteAndMoveIntoHty(delStockDetails, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
                    }
                    if (addStockDetails.Count>0)
                    {
                        addStockDetails.ForEach(x =>
                        {
                            x.Status = StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt();
                        });
                        _stockInfoDetailRepository.AddData(addStockDetails);
                    }
                    if (updateStockDetails.Count>0)
                    {
                        updateStockDetails.ForEach(x =>
@@ -299,23 +290,26 @@
                            Createtime = takeStockOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
                            Details = new List<TakeDetailsItem>()
                        };
                        foreach (var item in takeStockOrderDetails)
                        foreach (var item in takeStockOrderDetails.Where(x=>x.Qty!=x.SysQty))
                        {
                            TakeDetailsItem takeDetailsItem = new TakeDetailsItem()
                            {
                                MaterialsCode = item.MaterielCode,
                                LocationCode = item.LocationCode,
                                LocationCode = warehouse.WarehouseCode,
                                Lotno = item.BatchNo,
                                Sysqty = item.SysQty.ObjToDecimal(),
                                Qty = item.Qty.ObjToDecimal()
                            };
                            eRPTakeStock.Details.Add(takeDetailsItem);
                        }
                        string response = _invokeERPService.InvokeTakeStockApi(eRPTakeStock);
                        ErpRequestContent erpRequestContent = response.DeserializeObject<ErpRequestContent>();
                        if (erpRequestContent.res != 1)
                        if (eRPTakeStock.Details.Count>0)
                        {
                            throw new Exception("鍚屾ERP澶辫触,閿欒淇℃伅:" + erpRequestContent.Data);
                            string response = _invokeERPService.InvokeTakeStockApi(eRPTakeStock);
                            ErpRequestContent erpRequestContent = response.DeserializeObject<ErpRequestContent>();
                            if (erpRequestContent.res != 1)
                            {
                                throw new Exception("鍚屾ERP澶辫触,閿欒淇℃伅:" + erpRequestContent.Data);
                            }
                        }
                    }
                    _unitOfWorkManage.CommitTran();