wangxinhui
2 天以前 57148c2264abe80bd3b472f2980104d90dad5c61
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs
@@ -95,7 +95,7 @@
                }
                else if (outOrderDTO.OType==2)
                {
                    warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
                    warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA71.ToString());
                }
                List<Dt_ProOutOrderDetail> proOutOrderDetails = new List<Dt_ProOutOrderDetail>();
                Dictionary<string,string> keyValuePairs =new Dictionary<string, string>();
@@ -107,18 +107,31 @@
                    {
                        return content.Error($"客户{item.Customer}不存在!");
                    }
                    //寄售单据
                    if (outOrderDTO.OType == 2)
                    {
                        Dt_ProOutOrderDetail? ExistProDetail = proOutOrderDetails.FirstOrDefault(x => x.PCode == item.PCode && x.SaleOrder == item.SaleOrder && x.PVer == item.PVer && x.DateCode == item.DateCode);
                        if (ExistProDetail!=null)
                        {
                            Dt_ProOutOrderDetail OutOrderDetail = _mapper.Map<Dt_ProOutOrderDetail>(item);
                            ExistProDetail.QtyPcs += (OutOrderDetail.QtyPcs + OutOrderDetail.SpareQty);
                            ExistProDetail.SpareQty += OutOrderDetail.SpareQty;
                            continue;
                        }
                    }
                    Dt_ProOutOrderDetail proOutOrderDetail = _mapper.Map<Dt_ProOutOrderDetail>(item);
                    if (!string.IsNullOrEmpty(item.SaleOrder))
                    {
                        if (keyValuePairs!=null && keyValuePairs.ContainsKey(item.SaleOrder))
                        if (keyValuePairs != null && keyValuePairs.ContainsKey(item.SaleOrder))
                        {
                            proOutOrderDetail.EndCustomer = keyValuePairs[item.SaleOrder];
                        }
                        else
                        {
                            string request = _invokeERPService.InvokeProSaleCustomer(item.SaleOrder);
                            ErpSaleCustomResponseContent responseContent=request.DeserializeObject<ErpSaleCustomResponseContent>();
                            if (responseContent.Code!=200)
                            ErpSaleCustomResponseContent responseContent = request.DeserializeObject<ErpSaleCustomResponseContent>();
                            if (responseContent.Code != 200)
                            {
                                return content.Error($"订单{item.SaleOrder}终端客户获取失败!");
                            }
@@ -804,20 +817,20 @@
                            
                            //更新出库明细单数量
                            proOutOrderDetail.OverQtyPcs += item.Quantity;
                            item.Quantity -= item.Quantity;
                            float Range = itemOut.StockPcsQty / itemOut.SETQty;
                            int Range = (int)itemOut.StockPcsQty / (int)itemOut.SETQty;
                            if (Range == 0)
                            {
                                return content.Error($"{itemOut.BagNo}单元数量转换失败,请检查");
                                return content.Error($"{itemOut.BagNo}单元数量转换失败,请检查,Range:{Range}");
                            }
                            int outSet = (int)(item.Quantity / Range);
                            int outSet =item.Quantity / Range;
                            if (outSet == 0)
                            {
                                return content.Error($"{itemOut.BagNo}单元数量转换失败,请检查");
                                return content.Error($"{itemOut.BagNo}单元数量转换失败,请检查,outSet:{outSet}");
                            }
                            itemOut.SETQty -= outSet;
                            
                            itemOut.StockPcsQty -= item.Quantity;
                            item.Quantity = 0;
                            if (proOutOrderDetail.OverQtyPcs > proOutOrderDetail.QtyPcs)
                            {
                                return content.Error($"出库单{proOutOrder.ProOutOrderNo}销售订单{item.SoNumber}数量溢出{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}");