1
wangxinhui
2025-07-03 eb7892b61b050646ad11e7a36942c2a2a16a24f2
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs
@@ -1,5 +1,6 @@
using AutoMapper;
using Castle.Core.Resource;
using Org.BouncyCastle.Asn1.Cmp;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -131,6 +132,7 @@
                            keyValuePairs.Add(item.SaleOrder, responseContent.Data[0].Endcustomer);
                        }
                    }
                    proOutOrderDetail.QtyPcs += proOutOrderDetail.SpareQty;
                    proOutOrderDetails.Add(proOutOrderDetail);
                }
                Dt_ProOutOrder  proOutOrder= new Dt_ProOutOrder()
@@ -717,7 +719,7 @@
        /// <summary>
        /// æŸ¥è¯¢ERP订单扣除库存数量
        /// </summary>
        public async Task<WebResponseContent> OutProErpSync(string outProOrderNo)
        public WebResponseContent OutProErpSync(string outProOrderNo)
        {
            WebResponseContent content = new WebResponseContent();
            try
@@ -726,66 +728,59 @@
                Dt_ProOutOrder proOutOrder = BaseDal.Db.Queryable<Dt_ProOutOrder>().Where(x=>x.ProOutOrderNo== outProOrderNo).Includes(x => x.Details).First();
                if (proOutOrder==null)
                {
                    return await Task.FromResult(content.Error($"未找到成品出库订单{outProOrderNo}"));
                    return content.Error($"未找到成品出库订单{outProOrderNo}");
                }
                if (proOutOrder.ProOrderStatus>=OutOrderStatusEnum.出库完成.ObjToInt())
                {
                    return await Task.FromResult(content.Error($"出库订单已完成或关闭"));
                    return content.Error($"出库订单已完成或关闭");
                }
                //调用erp出库订单库存查询接口
                string response = _invokeERPService.InvokeOutProErpSync(outProOrderNo);
                ErpOutProSyncResponseContent erpOutProSyncResponse= response.DeserializeObject<ErpOutProSyncResponseContent>();
                if (erpOutProSyncResponse.Code!=200)
                {
                    return await Task.FromResult(content.Error($"ERP出库订单查询接口调用失败,错误信息:{erpOutProSyncResponse.Msg}"));
                    return content.Error($"ERP出库订单查询接口调用失败,错误信息:{erpOutProSyncResponse.Msg}");
                }
                List<OutProStock> outProStocks = erpOutProSyncResponse.Data;
                if (outProStocks.Count<=0 || outProStocks==null)
                {
                    return await Task.FromResult(content.Error($"成品出库订单{outProOrderNo}ERP当前未有出库库存信息"));
                    return content.Error($"成品出库订单{outProOrderNo}ERP当前未有出库库存信息");
                }
                // éªŒè¯æ‰€æœ‰å‡ºåº“单号是否一致
                OutProStock? outExist = outProStocks.FirstOrDefault(x => x.ShippingNumber != outProOrderNo);
                if (outExist != null)
                {
                    return content.Error($"ERP返回了出库订单{outExist.ShippingNumber}库存信息");
                }
                //获取平库库区
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
                if (warehouse==null)
                {
                    return await Task.FromResult(content.Error("未找到库区信息"));
                    return content.Error("未找到库区信息");
                }
                var productCodes = outProStocks.Select(x => x.Partnum).Distinct().ToList();
                //获取所有平库库存
                List<Dt_ProStockInfo> proStockInfos = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).Includes(x => x.proStockInfoDetails).ToList();
                List<Dt_ProStockInfoDetail> proStockInfoDetails= new List<Dt_ProStockInfoDetail>();
                foreach (var item in proStockInfos)
                {
                    proStockInfoDetails.AddRange(item.proStockInfoDetails);
                }
                proStockInfoDetails = proStockInfoDetails.OrderBy(x => x.DateCode).ThenBy(x => x.CreateDate).ToList() ;
                List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId)
                .Where((master, detail) => master.WarehouseId == warehouse.WarehouseId && productCodes.Contains(detail.ProductCode))
                .Select((master, detail) => detail)
                .ToList();
                proStockInfoDetails = proStockInfoDetails.OrderBy(x => x.DateCode).ThenBy(x => x.CreateDate).ToList();
                List<int> stockIds = proStockInfoDetails.Select(x => x.ProStockId).Distinct().ToList();
                //获取所有平库主表
                List<Dt_ProStockInfo> proStockInfos = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x => stockIds.Contains(x.Id)).Includes(x => x.proStockInfoDetails).ToList();
                List<Dt_ProStockInfo> delProStockInfos = new List<Dt_ProStockInfo>();
                List<Dt_ProStockInfoDetail> delStockInfoDetails = new List<Dt_ProStockInfoDetail>();
                foreach (var item in outProStocks)
                {
                    //查询库存记录
                    if (item.ShippingNumber != outProOrderNo)
                    {
                        return await Task.FromResult(content.Error($"ERP返回了出库订单{item.ShippingNumber}库存信息"));
                    }
                    //获取库存
                    List<Dt_ProStockInfoDetail> outStocks = proStockInfoDetails.Where(x=>x.ProductCode==item.Partnum).ToList();
                    if (outStocks.Count==0 || outStocks==null)
                    {
                        return await Task.FromResult(content.Error($"{item.Partnum}产品型号库存不存在"));
                    }
                    foreach (var itemOut in outStocks)
                    foreach (var itemOut in proStockInfoDetails.Where(x => x.ProductCode == item.Partnum).ToList())
                    {
                        if (item.Quantity==0)
                        {
                            break;
                        }
                        Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.SaleOrder == item.SoNumber && x.PCode == item.Partnum) ?? throw new Exception($"出库单{proOutOrder.ProOutOrderNo}未找到销售订单{item.SoNumber}明细,请检查");
                        if (item.Quantity >= itemOut.StockPcsQty)
                        {
                            Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.SaleOrder == item.SoNumber && x.PCode == item.Partnum);
                            if (proOutOrderDetail == null)
                            {
                                return await Task.FromResult(content.Error($"出库单{proOutOrder.ProOutOrderNo}未找到销售订单{item.SoNumber}明细,请检查"));
                            }
                            //更新出库明细单数量
                            proOutOrderDetail.OverQtyPcs += itemOut.StockPcsQty;
                            item.Quantity -= (int)itemOut.StockPcsQty;
@@ -793,7 +788,7 @@
                            proStockInfoDetails.Remove(itemOut);
                            if (proOutOrderDetail.OverQtyPcs > proOutOrderDetail.QtyPcs)
                            {
                                return await Task.FromResult(content.Error($"出库单{proOutOrder.ProOutOrderNo}销售订单{item.SoNumber}数量溢出{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}"));
                                return content.Error($"出库单{proOutOrder.ProOutOrderNo}销售订单{item.SoNumber}数量溢出{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}");
                            }
                            if (proOutOrderDetail.ProOrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
                            {
@@ -806,20 +801,26 @@
                        }
                        else if (item.Quantity < itemOut.StockPcsQty)
                        {
                            Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.SaleOrder == item.SoNumber && x.PCode == item.Partnum);
                            if (proOutOrderDetail == null)
                            {
                                return await Task.FromResult(content.Error($"出库单{proOutOrder.ProOutOrderNo}未找到销售订单{item.SoNumber}明细,请检查"));
                            }
                            //更新出库明细单数量
                            proOutOrderDetail.OverQtyPcs += item.Quantity;
                            item.Quantity -= item.Quantity;
                            float Range = itemOut.StockPcsQty / itemOut.SETQty;
                            itemOut.SETQty = item.Quantity / Range;
                            if (Range == 0)
                            {
                                return content.Error($"{itemOut.BagNo}单元数量转换失败,请检查");
                            }
                            int outSet = (int)(item.Quantity / Range);
                            if (outSet == 0)
                            {
                                return content.Error($"{itemOut.BagNo}单元数量转换失败,请检查");
                            }
                            itemOut.SETQty -= outSet;
                            itemOut.StockPcsQty -= item.Quantity;
                            if (proOutOrderDetail.OverQtyPcs > proOutOrderDetail.QtyPcs)
                            {
                                return await Task.FromResult(content.Error($"出库单{proOutOrder.ProOutOrderNo}销售订单{item.SoNumber}数量溢出{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}"));
                                return content.Error($"出库单{proOutOrder.ProOutOrderNo}销售订单{item.SoNumber}数量溢出{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}");
                            }
                            if (proOutOrderDetail.ProOrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
                            {
@@ -831,6 +832,10 @@
                            }
                        }
                    }
                    if (item.Quantity>0)
                    {
                        return content.Error($"未找到{item.SoNumber}可扣减库存");
                    }
                }
                if (proOutOrder.Details.Count == proOutOrder.Details.Where(x => x.ProOrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count())
                {
@@ -839,24 +844,34 @@
                else
                {
                    Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.ProOrderDetailStatus <= OrderDetailStatusEnum.Over.ObjToInt());
                    return await Task.FromResult(content.Error($"{proOutOrderDetail?.SaleOrder}销售订单数量需出{proOutOrderDetail?.QtyPcs},可出{proOutOrderDetail?.OverQtyPcs}"));
                    return content.Error($"{proOutOrderDetail?.SaleOrder}销售订单数量需出{proOutOrderDetail?.QtyPcs},可出{proOutOrderDetail?.OverQtyPcs}");
                }
                //获取删除的库存主表
                List<int> delStockIds = delStockInfoDetails.Select(x => x.ProStockId).Distinct().ToList();
                List<int> delStockDetailIds = delStockInfoDetails.Select(x => x.Id).ToList();
                foreach (var item in delStockIds)
                {
                    Dt_ProStockInfo proStockInfo = proStockInfos.FirstOrDefault(x => x.Id == item);
                    Dt_ProStockInfoDetail? proStockInfoDetail = proStockInfo.proStockInfoDetails.FirstOrDefault(x => !delStockDetailIds.Contains(x.Id));
                    if (proStockInfoDetail == null)
                    {
                        delProStockInfos.Add(proStockInfo);
                    }
                }
                //更新数据
                _unitOfWorkManage.BeginTran();
                if (delStockInfoDetails.Count > 0)
                {
                    _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(delStockInfoDetails, OperateTypeEnum.自动删除);
                }
                await _stockRepository.ProStockInfoDetailRepository.UpdateDataAsync(proStockInfoDetails);
                await BaseDal.UpdateDataAsync(proOutOrder);
                await _outboundRepository.ProOutOrderDetailRepository.UpdateDataAsync(proOutOrder.Details);
                _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(delStockInfoDetails, OperateTypeEnum.自动删除);
                _stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(delProStockInfos, OperateTypeEnum.自动完成);
                _stockRepository.ProStockInfoDetailRepository.UpdateData(proStockInfoDetails);
                BaseDal.UpdateData(proOutOrder);
                _outboundRepository.ProOutOrderDetailRepository.UpdateData(proOutOrder.Details);
                _unitOfWorkManage.CommitTran();
                return await Task.FromResult(content.OK());
                return content.OK();
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return await Task.FromResult(content.Error(ex.Message));
                return content.Error(ex.Message);
            }
        }
        /// <summary>
@@ -905,17 +920,17 @@
                {
                    return await Task.FromResult(content.Error("未找到库区信息"));
                }
                //获取所有平库的数据
                List<Dt_ProStockInfo> AllproStockInfos = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>()
                    .Where(x => x.WarehouseId == warehouse.WarehouseId)
                    .Includes(x => x.proStockInfoDetails).ToList();
                List<Dt_ProStockInfo> proStockInfos = new List<Dt_ProStockInfo>();
                List<Dt_ProStockInfoDetail> proStockInfoDetails = new List<Dt_ProStockInfoDetail>();
                foreach (var item in AllproStockInfos)
                {
                    proStockInfoDetails.AddRange(item.proStockInfoDetails);
                }
                //获取所有平库库存
                List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId)
                .Where((master, detail) => master.WarehouseId == warehouse.WarehouseId && outProInfos.Select(x=>x.ProductCode).Contains(detail.ProductCode))
                .Select((master, detail) => detail)
                .ToList();
                List<int> stockIds = proStockInfoDetails.Select(x => x.ProStockId).Distinct().ToList();
                //获取所有平库主表
                List<Dt_ProStockInfo> proStockInfos = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x => stockIds.Contains(x.Id)).Includes(x=>x.proStockInfoDetails).ToList();
                proStockInfoDetails = proStockInfoDetails.OrderBy(x => x.DateCode).ThenBy(x => x.CreateDate).ThenBy(x=>x.StockPcsQty).ToList();
                List<Dt_Warehouse> warehouses = await _basicRepository.WarehouseRepository.QueryDataAsync(x => x.WarehouseType == WarehouseTypEnum.成品.ToString());
                //将其分组
                outProInfos = outProInfos.GroupBy(x => x.ProductCode).Select(x=>new OutProInfoDTO()
@@ -924,6 +939,7 @@
                    OutQtys=x.Sum(x=>x.OutQtys)
                }).ToList();
                List<Dt_ProStockInfoDetail> UpStockInfoDetails = new List<Dt_ProStockInfoDetail>();
                List<Dt_ProStockInfo> DelStocks = new List<Dt_ProStockInfo>();
                foreach (var item in outProInfos)
                {
                    //获取库存
@@ -931,6 +947,10 @@
                    if (outStocks.Count <= 0 || outProInfos==null)
                    {
                        return await Task.FromResult(content.Error($"未找到产品{item.ProductCode}库存"));
                    }
                    if (outStocks.Sum(x=>x.StockPcsQty)< item.OutQtys)
                    {
                        return await Task.FromResult(content.Error($"可用平库数量{outStocks.Sum(x => x.StockPcsQty)}不满足出库数量{item.OutQtys}"));
                    }
                    foreach (var outStock in outStocks)
                    {
@@ -972,6 +992,10 @@
                                    else
                                    {
                                        outStock.OutSETQty = outStock.OutboundQuantity / Range;
                                    }
                                    if (outStock.OutSETQty==0)
                                    {
                                        return await Task.FromResult(content.Error($"{outStock.BagNo}单元数量转换失败,请检查"));
                                    }
                                    item.OutQtys -= (int)BeyondQtys;
                                    UpStockInfoDetails.Add(outStock);
@@ -1026,7 +1050,11 @@
                                    outStock.OutboundQuantity = BeyondQtys;
                                    float Range = outStock.StockPcsQty / outStock.SETQty;
                                    outStock.OutSETQty = outStock.OutboundQuantity / Range;
                                    item.OutQtys -= (int)BeyondQtys;
                                    if (outStock.OutSETQty == 0)
                                    {
                                        return await Task.FromResult(content.Error($"{outStock.BagNo}单元数量转换失败,请检查"));
                                    }
                                    item.OutQtys = 0;
                                    UpStockInfoDetails.Add(outStock);
                                    proStockInfoDetails.Remove(outStock);
                                }
@@ -1042,7 +1070,11 @@
                                outStock.OutboundQuantity = item.OutQtys;
                                float Range = outStock.StockPcsQty / outStock.SETQty;
                                outStock.OutSETQty = outStock.OutboundQuantity / Range;
                                item.OutQtys -= item.OutQtys;
                                if (outStock.OutSETQty == 0)
                                {
                                    return await Task.FromResult(content.Error($"{outStock.BagNo}单元数量转换失败,请检查"));
                                }
                                item.OutQtys = 0;
                                UpStockInfoDetails.Add(outStock);
                                proStockInfoDetails.Remove(outStock);
                            }
@@ -1067,69 +1099,72 @@
                    return await Task.FromResult(content.Error($"{proOutOrderDetail?.SaleOrder}销售订单数量需出{proOutOrderDetail?.QtyPcs},可出{proOutOrderDetail?.OverQtyPcs}"));
                }
                List<StockOutItemsItem> stockOutItems = new List<StockOutItemsItem>();
                if (proOutOrder.ProOrderStatus == OutOrderStatusEnum.出库完成.ObjToInt())
                //获取所有已扫码待发货的库存
                List<Dt_ProStockInfoDetail> assOutStocks = _stockRepository.ProStockInfoDetailRepository.Db.Queryable<Dt_ProStockInfoDetail>()
                .Where(x => x.OutProNo == ProOutNo).ToList();
                UpStockInfoDetails.AddRange(assOutStocks);
                foreach (var item in UpStockInfoDetails)
                {
                    //获取所有已扫码待发货的库存
                    List<Dt_ProStockInfoDetail> assOutStocks = _stockRepository.ProStockInfoDetailRepository.Db.Queryable<Dt_ProStockInfoDetail>()
                    .Where(x => x.OutProNo == ProOutNo).ToList();
                    UpStockInfoDetails.AddRange(assOutStocks);
                    foreach (var item in UpStockInfoDetails)
                    StockOutItemsItem outItemsItem = new StockOutItemsItem()
                    {
                        StockOutItemsItem outItemsItem = new StockOutItemsItem()
                        {
                            PartNum = item.ProductCode,
                            Rev = item.ProductVersion,
                            SoNumber = item.OutDetailSaleNo,
                            BatchNumber = item.ProductCode,
                            QtyPcs = item.OutboundQuantity,
                            QtySet = item.OutSETQty
                        };
                        stockOutItems.Add(outItemsItem);
                    }
                        PartNum = item.ProductCode,
                        Rev = item.ProductVersion,
                        SoNumber = item.OutDetailSaleNo,
                        BatchNumber = item.ProductCode,
                        QtyPcs = item.OutboundQuantity,
                        QtySet = item.OutSETQty
                    };
                    stockOutItems.Add(outItemsItem);
                }
                Dt_Warehouse warehouseOut = warehouses.Where(x => x.WarehouseId == proOutOrder.WarehouseId).FirstOrDefault();
                _unitOfWorkManage.BeginTran();
                //处理库存数据和上传ERP
                if (proOutOrder.ProOrderStatus == OutOrderStatusEnum.出库完成.ObjToInt())
                //获取删除库存
                List<Dt_ProStockInfoDetail> delDetails = UpStockInfoDetails.Where(x => x.AssignDel == 1).ToList();
                List<Dt_ProStockInfoDetail> UpDetails = UpStockInfoDetails.Where(x => x.AssignDel != 1).ToList();
                //获取删除的库存主表
                List<int> delStockIds = delDetails.Select(x => x.ProStockId).Distinct().ToList();
                List<int> delStockDetailIds = delDetails.Select(x => x.Id).ToList();
                foreach (var item in delStockIds)
                {
                    //成品库存记录变动待加入
                    ERPProOutOrderModel proOutOrderModel = new ERPProOutOrderModel()
                    Dt_ProStockInfo proStockInfo = proStockInfos.FirstOrDefault(x=>x.Id==item);
                    Dt_ProStockInfoDetail? proStockInfoDetail= proStockInfo.proStockInfoDetails.FirstOrDefault(x=> !delStockDetailIds.Contains(x.Id));
                    if (proStockInfoDetail==null)
                    {
                        Way = 1,
                        StockOutCode = _outboundOrderService.CreateCodeByRule(nameof(RuleCodeEnum.ProOutCOdeRule)),
                        ConfirmedUserNo = App.User.UserName,
                        AssignUserNo = App.User.UserName,
                        WarehouseCode = warehouseOut.WarehouseCode,
                        ShipDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                        DeliverplanCode = proOutOrder.ProOutOrderNo,
                        Remark = proOutOrder.Remark,
                        StockOutItems = stockOutItems
                    };
                    //获取删除库存
                    List<Dt_ProStockInfoDetail> delDetails = UpStockInfoDetails.Where(x=>x.AssignDel==1).ToList();
                    List<Dt_ProStockInfoDetail> UpDetails = UpStockInfoDetails.Where(x => x.AssignDel != 1).ToList();
                    //更新数据
                    UpDetails.ForEach(x =>
                    {
                        x.StockPcsQty -= x.OutboundQuantity;
                        x.SETQty -= x.OutSETQty;
                        x.OutDetailId = 0;
                        x.OutDetailSaleNo = null;
                        x.OutProNo = null;
                    });
                    _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(delDetails, OperateTypeEnum.自动完成);
                    await _stockRepository.ProStockInfoDetailRepository.UpdateDataAsync(UpDetails);
                    //同步ERP
                    string response = _invokeERPService.InvokeProOutApi(proOutOrderModel);
                    ErpRequestContent erpRequestContent = response.DeserializeObject<ErpRequestContent>();
                    if (erpRequestContent.res != 1)
                    {
                        throw new Exception("同步ERP失败,错误信息:" + erpRequestContent.Data);
                        DelStocks.Add(proStockInfo);
                    }
                }
                else
                _unitOfWorkManage.BeginTran();
                //处理库存数据和上传ERP
                //成品库存记录变动待加入
                ERPProOutOrderModel proOutOrderModel = new ERPProOutOrderModel()
                {
                    await _stockRepository.ProStockInfoDetailRepository.UpdateDataAsync(UpStockInfoDetails);
                    Way = 1,
                    StockOutCode = _outboundOrderService.CreateCodeByRule(nameof(RuleCodeEnum.ProOutCOdeRule)),
                    ConfirmedUserNo = App.User.UserName,
                    AssignUserNo = App.User.UserName,
                    WarehouseCode = warehouseOut.WarehouseCode,
                    ShipDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    DeliverplanCode = proOutOrder.ProOutOrderNo,
                    Remark = proOutOrder.Remark,
                    StockOutItems = stockOutItems
                };
                //更新数据
                UpDetails.ForEach(x =>
                {
                    x.StockPcsQty -= x.OutboundQuantity;
                    x.SETQty -= x.OutSETQty;
                    x.OutDetailId = 0;
                    x.OutDetailSaleNo = null;
                    x.OutProNo = null;
                });
                _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(delDetails, OperateTypeEnum.自动完成);
                _stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(DelStocks, OperateTypeEnum.自动完成);
                await _stockRepository.ProStockInfoDetailRepository.UpdateDataAsync(UpDetails);
                //同步ERP
                string response = _invokeERPService.InvokeProOutApi(proOutOrderModel);
                ErpRequestContent erpRequestContent = response.DeserializeObject<ErpRequestContent>();
                if (erpRequestContent.res != 1)
                {
                    throw new Exception("同步ERP失败,错误信息:" + erpRequestContent.Data);
                }
                await _outboundRepository.ProOutOrderDetailRepository.UpdateDataAsync(proOutOrder.Details);
                await BaseDal.UpdateDataAsync(proOutOrder);