From 67348f250a1b7970059698002949a5e0a5f3c52f Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期四, 14 八月 2025 08:51:04 +0800
Subject: [PATCH] 上传最新代码

---
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs | 1047 ---------------------------------------------------------
 1 files changed, 4 insertions(+), 1,043 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index 3da86d6..ec5d9d5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -35,7 +35,7 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.Id == id).Includes(x => x.Details).First();
+                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.Id == id).First();
                 if (stockInfo == null)
                 {
                     return content.Error($"鏈壘鍒板簱瀛�");
@@ -61,7 +61,7 @@
                     //鏂板缓浠诲姟
                     BaseDal.AddData(tasks);
                     //鍔犲叆璐т綅鍙樺姩璁板綍
-                    _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, locationStatus, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", tasks[0].TaskNum);
+                    _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, locationStatus, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, stockInfo.OrderNo ?? "", tasks[0].TaskNum);
                     _unitOfWorkManage.CommitTran();
                     PushTasksToWCS(tasks);
                     content.OK();
@@ -76,425 +76,6 @@
                 content.Error(ex.Message);
             }
             return content;
-        }
-        /// <summary>
-        /// 鐢熸垚鎴愬搧鍑哄簱浠诲姟
-        /// </summary>
-        /// <param name="ProOutNo">鍑哄簱璁㈠崟鍙�</param>
-        /// <param name="StationCode">绔欏彴鍦板潃</param>
-        /// <returns></returns>
-        public async Task<WebResponseContent> OutProductTask(int[] keys, string StationCode, int Grade)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                if (StationCode.IsNullOrEmpty())
-                {
-                    return await Task.FromResult(content.Error("绾夸綋杈撳叆閿欒"));
-                }
-                //鑾峰彇鎴愬搧鍑哄簱璁㈠崟
-                List<Dt_ProOutOrderDetail> _ProOutOrderDetails = await _outboundRepository.ProOutOrderDetailRepository.QueryDataAsync(x => keys.Contains(x.Id) && x.ProOrderDetailStatus== OrderDetailStatusEnum.New.ObjToInt());
-                if (_ProOutOrderDetails.Count<=0)
-                {
-                    return await Task.FromResult(content.Error("鍕鹃�夎鍗曟槑缁嗙姸鎬佷负鍑哄簱涓�"));
-                }
-                List<Dt_Task> tasks = new List<Dt_Task>();
-                List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>();
-                List<Dt_ProStockInfo> proStockInfos = new List<Dt_ProStockInfo>();
-                List<Dt_ProOutOrderDetail> proOutOrderDetails = new List<Dt_ProOutOrderDetail>();
-                List<Dt_OutProStockInfo> outProStockInfos = new List<Dt_OutProStockInfo>();
-                List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>();
-                (List<Dt_Task>, List<Dt_ProStockInfo>?, List<Dt_ProOutOrderDetail>?, List<Dt_OutProStockInfo>?, List<Dt_LocationInfo>?) result =
-                OutProductTaskDataHandle(_ProOutOrderDetails);
-                if (result.Item2 != null && result.Item2.Count > 0)
-                {
-                    proStockInfos.AddRange(result.Item2);
-                }
-                if (result.Item3 != null && result.Item3.Count > 0)
-                {
-                    proOutOrderDetails.AddRange(result.Item3);
-                }
-                if (result.Item4 != null && result.Item4.Count > 0)
-                {
-                    outProStockInfos.AddRange(result.Item4);
-                }
-                if (result.Item5 != null && result.Item5.Count > 0)
-                {
-                    locationInfos.AddRange(result.Item5);
-                }
-                if (result.Item1 != null && result.Item1.Count > 0)
-                {
-                    Dt_Task? task = BaseDal.QueryData(x=>x.TaskType==TaskTypeEnum.OutProduct.ObjToInt()).OrderByDescending(x=>x.Grade).FirstOrDefault();
-                    //鏇存柊鍑哄簱鐩殑浣嶇疆
-                    result.Item1.ForEach(x =>
-                    {
-                        x.TargetAddress = StationCode;
-                        if (Grade==1 || task==null)
-                        {
-                            x.Grade = 127;
-                        }
-                        else
-                        {
-                            if (task.Grade==0 || task.Grade==1)
-                            {
-                                x.Grade = 1;
-                            }
-                            else
-                            {
-                                x.Grade = task.Grade - 1;
-                            }
-                        }
-                    });
-                    tasks.AddRange(result.Item1);
-                }
-                //澶勭悊鍑哄簱鏁版嵁
-                return await Task.FromResult(GenerateOutboundTaskDataUpdate(tasks, proStockInfos, proOutOrderDetails, outProStockInfos, locationInfos));
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 浜哄伐閫夊畾搴撳瓨鍑哄簱
-        /// </summary>
-        /// <returns></returns>
-        public WebResponseContent OutProductSelect(int orderDetailId,List<ProStockViewDTO> proStockViews)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                //鑾峰彇鍑哄簱鍗曟槑缁�
-                Dt_ProOutOrderDetail proOutOrderDetail = _outboundRepository.ProOutOrderDetailRepository.QueryFirst(x=>x.Id==orderDetailId);
-                if (proOutOrderDetail == null)
-                {
-                    return content.Error("璁㈠崟鏄庣粏涓嶅瓨鍦�");
-                }
-                if (proOutOrderDetail.ProOrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt())
-                {
-                    return content.Error("褰撳墠鐨勬槑缁嗗崟宸插畬鎴�");
-                }
-                //鑾峰彇鍑哄簱鍗曟嵁
-                Dt_ProOutOrder proOutOrder = _outboundRepository.ProOutOrderRepository.Db.Queryable<Dt_ProOutOrder>().Where(x=>x.Id==proOutOrderDetail.ProOrderId).Includes(x => x.Details).First();
-                if (proOutOrder==null)
-                {
-                    return content.Error("鍑哄簱鍗曟嵁涓嶅瓨鍦�");
-                }
-                if (proOutOrder.ProOrderStatus>=OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
-                {
-                    return content.Error($"{proOutOrder.ProOutOrderNo}鍑哄簱鍗曞凡瀹屾垚");
-                }
-                if ((proOutOrderDetail.QtyPcs-proOutOrderDetail.OverQtyPcs)> proStockViews.Sum(x=>x.SumStocks))
-                {
-                    return content.Error($"闇�婊¤冻{proOutOrderDetail.QtyPcs - proOutOrderDetail.OverQtyPcs}鍑哄簱閲�");
-                }
-                //鑾峰彇鎵�鏈夊簱瀛�
-                List<Dt_ProStockInfo> proStockInfos = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(b => b.LocationCode == "鎴愬搧寰呭彂璐у尯" && b.StockStatus == StockStatusEmun.骞冲簱鍏ュ簱瀹屾垚.ObjToInt() && (b.ShipmentOrder == null || b.ShipmentOrder == "")).Includes(x => x.proStockInfoDetails).Where(x => x.proStockInfoDetails.Any(v => v.ProductCode == proOutOrderDetail.PCode)).ToList();
-                //鑾峰彇宸插畬鎴愭暟閲�
-                int OverCount = proOutOrder.Details.Where(x => x.ProOrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count();
-                List<Dt_ProStockInfo> outStockInfos=new List<Dt_ProStockInfo>();
-                List<Dt_ProStockInfoDetail> outStockInfoDetails=new List<Dt_ProStockInfoDetail>();
-                List<StockOutItemsItem> stockOutItems = new List<StockOutItemsItem>();
-                foreach (var item in proStockViews.OrderBy(x => x.SumStocks))
-                {
-                    //鑾峰彇褰撳墠搴撳瓨
-                    Dt_ProStockInfo? proStockInfo = proStockInfos.FirstOrDefault(x => x.Id == item.ProStockId);
-                    if (proStockInfo!=null && proStockInfo.proStockInfoDetails.Count>0)
-                    {
-                        proStockInfo.ShipmentOrder = proOutOrder.ProOutOrderNo;
-                        proStockInfo.StockStatus = StockStatusEmun.骞冲簱寰呭彂璐�.ObjToInt();
-                        //鍓╀綑鏁伴噺
-                        float Amount = proOutOrderDetail.QtyPcs - proOutOrderDetail.LockQtyPcs;
-                        if (Amount > item.SumStocks)
-                        {
-                            proOutOrderDetail.LockQtyPcs += item.SumStocks;
-                            Dt_ProStockInfoDetail proStockInfoDetail = proStockInfo.proStockInfoDetails.FirstOrDefault();
-                            
-                            proStockInfoDetail.OutboundQuantity = proStockInfoDetail.StockPcsQty;
-                            proStockInfoDetail.OutSETQty = proStockInfoDetail.SETQty;
-                            proStockInfoDetail.OutDetailSaleNo = proOutOrderDetail.SaleOrder;
-                            outStockInfoDetails.Add(proStockInfoDetail);
-                        }
-                        else
-                        {
-                            Dt_ProStockInfoDetail proStockInfoDetail = proStockInfo.proStockInfoDetails.FirstOrDefault();
-                            float intervalSet = proStockInfoDetail.StockPcsQty / proStockInfoDetail.SETQty;
-                            proStockInfoDetail.OutboundQuantity += Amount;
-                            proStockInfoDetail.OutSETQty += (Amount / intervalSet);
-                            proOutOrderDetail.LockQtyPcs += Amount;
-                            proStockInfoDetail.OutDetailSaleNo = proOutOrderDetail.SaleOrder;
-                            outStockInfoDetails.Add(proStockInfoDetail);
-                        }
-                        if (proOutOrderDetail.QtyPcs==proOutOrderDetail.LockQtyPcs)
-                        {
-                            proOutOrderDetail.ProOrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
-                        }
-                        outStockInfos.Add(proStockInfo);
-                    }
-                    else
-                    {
-                        return content.Error("鏈壘鍒版垚鍝佸簱瀛�");
-                    }
-                }
-                List<Dt_ProStockInfo> deleteStocks=new List<Dt_ProStockInfo>();
-                List<Dt_ProStockInfoDetail> deleteStockDetails = new List<Dt_ProStockInfoDetail>();
-                List<Dt_ProStockInfo> updateStocks = new List<Dt_ProStockInfo>();
-                List<Dt_ProStockInfoDetail> updateStockDetails = new List<Dt_ProStockInfoDetail>();
-                if (proOutOrderDetail.ProOrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt() && (OverCount+1)== proOutOrder.Details.Count)
-                {
-                    proOutOrder.ProOrderStatus=OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
-                    //鑾峰彇鎵�鏈夊凡鎵爜寰呭彂璐х殑搴撳瓨
-                    List<Dt_ProStockInfo> AllOutStocks = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>()
-                    .Where(x => x.ShipmentOrder == proOutOrder.ProOutOrderNo && x.StockStatus == StockStatusEmun.骞冲簱寰呭彂璐�.ObjToInt())
-                    .Includes(x => x.proStockInfoDetails).ToList();
-                    AllOutStocks.ForEach(x =>
-                    {
-                        outStockInfoDetails.AddRange(x.proStockInfoDetails);
-                    });
-                    outStockInfos.AddRange(AllOutStocks);
-                    foreach (var item in outStockInfoDetails)
-                    {
-                        StockOutItemsItem outItemsItem = new StockOutItemsItem()
-                        {
-                            PartNum = item.ProductCode,
-                            Rev = item.ProductVersion,
-                            SoNumber = item.OutDetailSaleNo,
-                            BatchNumber = item.BagNo,
-                            QtyPcs = item.OutboundQuantity,
-                            QtySet = item.OutSETQty
-                        };
-                        stockOutItems.Add(outItemsItem);
-                        if (item.OutboundQuantity == item.StockPcsQty)
-                        {
-                            Dt_ProStockInfo proStockInfo = outStockInfos.FirstOrDefault(x => x.Id == item.ProStockId);
-                            if (proStockInfo != null)
-                            {
-                                deleteStocks.Add(proStockInfo);
-                                deleteStockDetails.Add(item);
-                            }
-                            else
-                            {
-                                return content.Error("鏈壘鍒颁笂鎶ョ殑搴撳瓨鏁版嵁");
-                            }
-                        }
-                        if (item.OutboundQuantity < item.StockPcsQty)
-                        {
-                            Dt_ProStockInfo proStockInfo = outStockInfos.FirstOrDefault(x => x.Id == item.ProStockId);
-                            if (proStockInfo != null)
-                            {
-                                proStockInfo.StockStatus = StockStatusEmun.骞冲簱鍏ュ簱瀹屾垚.ObjToInt();
-                                proStockInfo.ShipmentOrder = "";
-                                updateStocks.Add(proStockInfo);
-                                item.StockPcsQty -= item.OutboundQuantity;
-                                item.OutboundQuantity = 0;
-                                item.OutSETQty = 0;
-                                updateStockDetails.Add(item);
-                            }
-                            else
-                            {
-                                return content.Error("鏈壘鍒颁笂鎶ョ殑搴撳瓨鏁版嵁");
-                            }
-                        }
-                    }
-                }
-                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == proOutOrder.WarehouseId);
-                _unitOfWorkManage.BeginTran();
-                if (proOutOrder.ProOrderStatus == OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
-                {
-                    //鎴愬搧搴撳瓨璁板綍鍙樺姩寰呭姞鍏�
-                    ERPProOutOrderModel proOutOrderModel = new ERPProOutOrderModel()
-                    {
-                        Way = 1,
-                        StockOutCode = _outboundService.OutboundOrderService.CreateCodeByRule(nameof(RuleCodeEnum.ProOutCOdeRule)),
-                        ConfirmedUserNo = App.User.UserName,
-                        AssignUserNo = App.User.UserName,
-                        WarehouseCode = warehouse.WarehouseCode,
-                        ShipDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                        DeliverplanCode = proOutOrder.ProOutOrderNo,
-                        Remark = proOutOrder.Remark,
-                        StockOutItems = stockOutItems
-                    };
-                    _stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(deleteStocks, OperateTypeEnum.鑷姩瀹屾垚);
-                    _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(deleteStockDetails, OperateTypeEnum.鑷姩瀹屾垚);
-                    if (updateStockDetails.Count>0)
-                    {
-                        _stockRepository.ProStockInfoRepository.UpdateData(updateStocks);
-                        updateStockDetails.ForEach(x =>
-                        {
-                            x.OutDetailSaleNo = "";
-                        });
-                        _stockRepository.ProStockInfoDetailRepository.UpdateData(updateStockDetails);
-                    }
-                    string response = _invokeERPService.InvokeProOutApi(proOutOrderModel);
-                    ErpRequestContent erpRequestContent = response.DeserializeObject<ErpRequestContent>();
-                    if (erpRequestContent.res != 1)
-                    {
-                        throw new Exception("鍚屾ERP澶辫触,閿欒淇℃伅:" + erpRequestContent.Data);
-                    }
-                }
-                else
-                {
-                    _stockRepository.ProStockInfoRepository.UpdateData(outStockInfos);
-                    _stockRepository.ProStockInfoDetailRepository.UpdateData(outStockInfoDetails);
-                    _outboundRepository.ProOutOrderDetailRepository.UpdateData(proOutOrderDetail);
-                    _outboundRepository.ProOutOrderRepository.UpdateData(proOutOrder);
-                }
-                _unitOfWorkManage.CommitTran();
-                content.OK("鎴愬姛");
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 澶勭悊鍑哄簱鏁版嵁
-        /// </summary>
-        public WebResponseContent GenerateOutboundTaskDataUpdate(List<Dt_Task> tasks, List<Dt_ProStockInfo>? proStockInfos = null, List<Dt_ProOutOrderDetail>? proOutOrderDetails = null, List<Dt_OutProStockInfo>? outProStockInfos = null, List<Dt_LocationInfo>? locationInfos = null)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-
-                //鑾峰彇鎴愬搧鍑哄簱鍗曚富琛�
-                Dt_ProOutOrder proOutOrder = _outboundRepository.ProOutOrderRepository.QueryFirst(x => x.Id == proOutOrderDetails.FirstOrDefault().ProOrderId);
-                if (proOutOrder!=null && proOutOrder.ProOrderStatus == OutOrderStatusEnum.鏈紑濮�.ObjToInt())
-                {
-                    proOutOrder.ProOrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
-                    _outboundRepository.ProOutOrderRepository.UpdateData(proOutOrder);
-                }
-                BaseDal.AddData(tasks);
-                if (proStockInfos != null && proStockInfos.Count > 0 && proOutOrderDetails != null && proOutOrderDetails.Count > 0 && outProStockInfos != null && outProStockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0)
-                {
-                    proStockInfos.ForEach(x =>
-                    {
-                        x.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
-                    });
-                    WebResponseContent content = _outboundService.ProOutOrderDetailService.LockOutboundStockDataUpdate(proStockInfos, proOutOrderDetails, outProStockInfos, locationInfos, tasks: tasks);
-
-                    if (!content.Status)
-                    {
-                        _unitOfWorkManage.RollbackTran();
-                        return content;
-                    }
-                }
-                else if (proOutOrderDetails != null && proOutOrderDetails.Count > 0)
-                {
-                    proOutOrderDetails.ForEach(x =>
-                    {
-                        x.ProOrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
-                    });
-
-                    _outboundRepository.ProOutOrderDetailRepository.UpdateData(proOutOrderDetails);
-                }
-                _unitOfWorkManage.CommitTran();
-                PushTasksToWCS(tasks);
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-
-        }
-        /// <summary>
-        /// 澶勭悊鎴愬搧鍑哄簱鏁版嵁
-        /// </summary>
-        /// <returns></returns>
-        public (List<Dt_Task>, List<Dt_ProStockInfo>?, List<Dt_ProOutOrderDetail>?, List<Dt_OutProStockInfo>?, List<Dt_LocationInfo>?) OutProductTaskDataHandle(List<Dt_ProOutOrderDetail> proOutOrderDetails)
-        {
-            List<Dt_Task> tasks = new List<Dt_Task>();
-            List<Dt_ProStockInfo> proStockInfos = new List<Dt_ProStockInfo>();
-            List<Dt_ProOutOrderDetail> assignOutOrderDetails = new List<Dt_ProOutOrderDetail>();
-            List<Dt_OutProStockInfo> outProStockInfos=new List<Dt_OutProStockInfo>();
-            List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>();
-            //鍒嗛厤搴撳瓨
-            (List<Dt_ProStockInfo>, List<Dt_ProOutOrderDetail>, List<Dt_OutProStockInfo>, List<Dt_LocationInfo>) result = _outboundService.ProOutOrderDetailService.AssignProStockOut(proOutOrderDetails);
-            if (result.Item1!=null&&result.Item1.Count>0)
-            {
-                //鑾峰彇鎴愬搧鍗�
-                Dt_ProOutOrder proOutOrder = _outboundRepository.ProOutOrderRepository.QueryFirst(x => x.Id == proOutOrderDetails.FirstOrDefault().ProOrderId);
-                if (proOutOrder==null)
-                {
-                    throw new Exception("鏈壘鍒版垚鍝佽鍗�");
-                }
-                TaskTypeEnum typeEnum = proOutOrder.ProOrderType switch
-                {
-                    (int)OutProTypeEnum.ProOut => TaskTypeEnum.OutProduct,
-                    (int)OutProTypeEnum.SendProOut => TaskTypeEnum.OutSendProduct,
-                    _ => new TaskTypeEnum()
-                };
-                tasks = GetTasks(result.Item1, typeEnum);
-                result.Item2.ForEach(x =>
-                {
-                    x.ProOrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
-                });
-                result.Item3.ForEach(x =>
-                {
-                    x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt();
-                });
-                tasks.ForEach(x => x.OrderNo = proOutOrder.ProOutOrderNo);
-                proStockInfos = result.Item1;
-                proOutOrderDetails = result.Item2;
-                outProStockInfos = result.Item3;
-                locationInfos = result.Item4;
-            }
-            else
-            {
-                throw new Exception("鏃犲彲鍒嗛厤搴撳瓨");
-            }
-            return (tasks, proStockInfos, proOutOrderDetails, outProStockInfos, locationInfos);
-        }
-        /// <summary>
-        /// 鐢熸垚浠诲姟
-        /// </summary>
-        /// <param name="stockInfos"></param>
-        /// <param name="taskType"></param>
-        /// <returns></returns>
-        public List<Dt_Task> GetTasks(List<Dt_ProStockInfo> stockInfos, TaskTypeEnum taskType)
-        {
-            List<Dt_Task> tasks = new List<Dt_Task>();
-            string groupId = DateTime.Now.ToString("yyMMddHHmmss");
-            for (int i = 1; i <= stockInfos.Count; i++)
-            {
-                Dt_ProStockInfo stockInfo = stockInfos[i-1];
-                if (i%5==0)
-                {
-                    groupId= DateTime.Now.AddSeconds(i).ToString("yyMMddHHmmss");
-                }
-                if (stockInfo != null)
-                {
-                    Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode);
-                    if (!tasks.Exists(x => x.PalletCode == stockInfo.PalletCode))
-                    {
-                        Dt_Task task = new()
-                        {
-                            CurrentAddress = stockInfo.LocationCode,
-                            Grade = 0,
-                            PalletCode = stockInfo.PalletCode,
-                            NextAddress = "",
-                            Roadway = locationInfo.RoadwayNo,
-                            SourceAddress = stockInfo.LocationCode,
-                            TargetAddress = "",
-                            TaskStatus = TaskStatusEnum.New.ObjToInt(),
-                            TaskType = taskType.ObjToInt(),
-                            TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
-                            PalletType = stockInfo.PalletType,
-                            WarehouseId = stockInfo.WarehouseId,
-                            GroupId= groupId,
-                            MaterielCode = stockInfo.proStockInfoDetails.Where(x => x.ProStockId == stockInfo.Id).FirstOrDefault()?.ProductCode,
-                            Quantity = (float)stockInfo.proStockInfoDetails.Where(x => x.ProStockId == stockInfo.Id).Sum(x=> x.StockPcsQty)
-                        };
-                        tasks.Add(task);
-                    }
-                }
-            }
-            return tasks;
         }
         /// <summary>
         /// 搴撳瓨鏁版嵁杞嚭搴撲换鍔�
@@ -527,8 +108,8 @@
                             TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
                             PalletType = stockInfo.PalletType,
                             WarehouseId = stockInfo.WarehouseId,
-                            MaterielCode = stockInfo.Details.Where(x =>x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode,
-                            Quantity =(float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity,
+                            MaterielCode = stockInfo.MaterielCode,
+                            Quantity = 0,
                         };
                         if (stockInfo.StockLength>0)
                         {
@@ -540,626 +121,6 @@
             }
             return tasks;
         }
-
-        /// <summary>
-        /// 鍑哄簱浠诲姟鏁版嵁澶勭悊
-        /// </summary>
-        /// <param name="orderDetailId"></param>
-        /// <param name="stockSelectViews"></param>
-        /// <returns></returns>
-        /// <exception cref="Exception"></exception>
-        public (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_OutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) OutboundTaskDataHandle(int orderDetailId, List<StockSelectViewDTO> stockSelectViews)
-        {
-            List<Dt_Task> tasks = new List<Dt_Task>();
-            Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.Id == orderDetailId);
-
-            if (outboundOrderDetail == null)
-            {
-                throw new Exception("鏈壘鍒板嚭搴撳崟鏄庣粏淇℃伅");
-            }
-
-            if (stockSelectViews.Sum(x => x.UseableQuantity) > outboundOrderDetail.OrderQuantity - outboundOrderDetail.LockQuantity)
-            {
-                throw new Exception("閫夋嫨鏁伴噺瓒呭嚭鍗曟嵁鏁伴噺");
-            }
-            List<Dt_StockInfo>? stockInfos = null;
-            Dt_OutboundOrderDetail? orderDetail = null;
-            List<Dt_OutStockLockInfo>? outStockLockInfos = null;
-            List<Dt_LocationInfo>? locationInfos = null;
-            if (outboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
-            {
-                (List<Dt_StockInfo>, Dt_OutboundOrderDetail, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.OutboundOrderDetailService.AssignStockOutbound(outboundOrderDetail, stockSelectViews);
-                if (result.Item1 != null && result.Item1.Count > 0)
-                {
-                    Dt_OutboundOrder outboundOrder = _outboundService.OutboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetail.OrderId);
-                    TaskTypeEnum typeEnum = outboundOrder.OrderType switch
-                    {
-                        (int)OutOrderTypeEnum.Issue => TaskTypeEnum.Outbound,
-                        (int)OutOrderTypeEnum.Allocate => TaskTypeEnum.OutAllocate,
-                        (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality,
-                        _ => new TaskTypeEnum()
-                    };
-                    tasks = GetTasks(result.Item1, typeEnum);
-                    result.Item2.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
-                    result.Item3.ForEach(x =>
-                    {
-                        x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt();
-                    });
-
-                    stockInfos = result.Item1;
-                    orderDetail = result.Item2;
-                    outStockLockInfos = result.Item3;
-                    locationInfos = result.Item4;
-                }
-                else
-                {
-                    throw new Exception("鏃犲簱瀛�");
-                }
-            }
-            else
-            {
-                List<Dt_OutStockLockInfo> stockLockInfos = _outboundService.OutboundStockLockInfoService.GetByOrderDetailId(outboundOrderDetail.OrderId, OutLockStockStatusEnum.宸插垎閰�);
-                if (stockLockInfos != null && stockLockInfos.Count > 0)
-                {
-                    List<Dt_StockInfo> stocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockLockInfos.Select(x => x.PalletCode).Distinct().ToList());
-                    tasks = GetTasks(stocks, TaskTypeEnum.Outbound);
-                }
-            }
-
-            return (tasks, stockInfos, orderDetail == null ? null : new List<Dt_OutboundOrderDetail> { orderDetail }, outStockLockInfos, locationInfos);
-        }
-
-        /// <summary>
-        /// 鍑哄簱浠诲姟鏁版嵁澶勭悊
-        /// </summary>
-        /// <param name="orderDetailId"></param>
-        /// <param name="stockSelectViews"></param>
-        /// <returns></returns>
-        /// <exception cref="Exception"></exception>
-        public (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_OutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) OutboundTaskDataHandle(int[] keys)
-        {
-            List<Dt_Task> tasks = new List<Dt_Task>();
-            List<Dt_OutboundOrderDetail> outboundOrderDetails = _outboundService.OutboundOrderDetailService.Repository.QueryData(x => keys.Contains(x.Id));
-
-            if (outboundOrderDetails == null || outboundOrderDetails.Count == 0)
-            {
-                throw new Exception("鏈壘鍒板嚭搴撳崟鏄庣粏淇℃伅");
-            }
-            if (outboundOrderDetails.FirstOrDefault(x => x.OrderDetailStatus > OrderDetailStatusEnum.New.ObjToInt() && x.OrderDetailStatus != OrderDetailStatusEnum.AssignOverPartial.ObjToInt()) != null)
-            {
-                throw new Exception("鎵�閫夊嚭搴撳崟鏄庣粏瀛樺湪鍑哄簱涓垨宸插畬鎴�");
-            }
-            List<Dt_StockInfo>? stockInfos = null;
-            List<Dt_OutboundOrderDetail>? orderDetails = null;
-            List<Dt_OutStockLockInfo>? outStockLockInfos = null;
-            List<Dt_LocationInfo>? locationInfos = null;
-            //if (outboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
-            {
-                (List<Dt_StockInfo>, List<Dt_OutboundOrderDetail>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.OutboundOrderDetailService.AssignStockOutbound(outboundOrderDetails);
-                if (result.Item1 != null && result.Item1.Count > 0)
-                {
-                    Dt_OutboundOrder outboundOrder =_outboundService.OutboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetails.FirstOrDefault().OrderId);
-                    TaskTypeEnum typeEnum = outboundOrder.OrderType switch
-                    {
-                        (int)OutOrderTypeEnum.Issue => TaskTypeEnum.Outbound,
-                        (int)OutOrderTypeEnum.Allocate=> TaskTypeEnum.OutAllocate,
-                        (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality,
-                        _ =>new TaskTypeEnum()
-                    };
-                    tasks = GetTasks(result.Item1, typeEnum);
-                    tasks.ForEach(x =>
-                    {
-                        x.OrderNo = outboundOrder.UpperOrderNo;
-                    });
-                    result.Item2.ForEach(x =>
-                    {
-                        x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
-                    });
-                    result.Item3.ForEach(x =>
-                    {
-                        x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt();
-                    });
-
-                    stockInfos = result.Item1;
-                    orderDetails = result.Item2;
-                    outStockLockInfos = result.Item3;
-                    locationInfos = result.Item4;
-                }
-                else
-                {
-                    throw new Exception("鏃犲簱瀛�");
-                }
-            }
-            //else
-            //{
-            //    List<Dt_OutStockLockInfo> stockLockInfos = _outboundService.OutboundStockLockInfoService.GetByOrderDetailId(outboundOrderDetail.OrderId, OutLockStockStatusEnum.宸插垎閰�);
-            //    if (stockLockInfos != null && stockLockInfos.Count > 0)
-            //    {
-            //        List<Dt_StockInfo> stocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockLockInfos.Select(x => x.PalletCode).Distinct().ToList());
-            //        tasks = GetTasks(stocks);
-            //    }
-            //}
-
-            return (tasks, stockInfos, orderDetails, outStockLockInfos, locationInfos);
-        }
-
-        /// <summary>
-        /// 鐢熸垚鍑哄簱浠诲姟
-        /// </summary>
-        /// <param name="orderDetailId"></param>
-        /// <param name="stockSelectViews"></param>
-        /// <returns></returns>
-        public WebResponseContent GenerateOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews)
-        {
-            try
-            {
-                (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_OutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = OutboundTaskDataHandle(orderDetailId, stockSelectViews);
-
-                WebResponseContent content = GenerateOutboundTaskDataUpdate(result.Item1, result.Item2, result.Item3, result.Item4, result.Item5);
-
-                return content;
-            }
-            catch (Exception ex)
-            {
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        /// <summary>
-        /// 骞冲簱鐩存帴鍑哄簱
-        /// </summary>
-        /// <param name="orderDetailId"></param>
-        /// <param name="stockSelectViews"></param>
-        /// <returns></returns>
-        public WebResponseContent GeneratePKOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews)
-        {
-            try
-            {
-                #region MyRegion
-                Dt_OutboundOrderDetail OrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.Id == orderDetailId);
-
-                if (OrderDetail == null)
-                {
-                    throw new Exception("鏈壘鍒板嚭搴撳崟鏄庣粏淇℃伅");
-                }
-                if (OrderDetail.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt())
-                    throw new Exception("鍑哄簱鍗曞凡瀹屾垚");
-                Dt_OutboundOrder outboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == OrderDetail.OrderId).Includes(x => x.Details).First();
-                if (outboundOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板嚭搴撳崟淇℃伅");
-                }
-                Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == outboundOrder.WarehouseId);
-                List<Dt_StockInfo> outStocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockSelectViews.Select(x => x.PalletCode).ToList());
-                if (outStocks.Count < 1) return WebResponseContent.Instance.Error($"搴撳瓨涓嶈冻");
-                List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>();
-                List<Dt_StockInfo> upStocks = new List<Dt_StockInfo>();
-                List<Dt_StockInfo> deStocks = new List<Dt_StockInfo>();
-                List<Dt_StockInfoDetail> upstockDetails = new List<Dt_StockInfoDetail>();
-                List<Dt_StockInfoDetail> destockDetails = new List<Dt_StockInfoDetail>();
-                outStocks.ForEach(x =>
-                {
-                    x.Details.Where(x => x.MaterielCode == OrderDetail.MaterielCode).ToList().ForEach(v =>
-                    {
-                        float OriginalQuantity = v.StockQuantity;
-                        float assignQuantity = 0;//鍒嗛厤鏁伴噺
-                        float assignAmount = OrderDetail.OrderQuantity - OrderDetail.OverOutQuantity;//寰呭嚭鏁伴噺
-                        if (assignAmount > 0)
-                        {
-                            if (v.StockQuantity >= assignAmount)
-                            {
-                                assignQuantity = assignAmount;
-                                v.StockQuantity -= assignAmount;
-                                OrderDetail.OverOutQuantity += assignAmount;
-                                OrderDetail.LockQuantity += assignAmount;
-                                upstockDetails.Add(v);
-                            }
-                            else
-                            {
-                                assignQuantity = v.StockQuantity;
-                                OrderDetail.OverOutQuantity += v.StockQuantity;
-                                OrderDetail.LockQuantity += v.StockQuantity;
-                                v.StockQuantity = 0;
-                                destockDetails.Add(v);
-                            }
-                            Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo()
-                            {
-                                PalletCode = x.PalletCode,
-                                AssignQuantity = assignQuantity,
-                                MaterielCode = OrderDetail.MaterielCode,
-                                BatchNo = v.BatchNo,
-                                LocationCode = x.LocationCode,
-                                MaterielName = v.MaterielName,
-                                OrderDetailId = OrderDetail.Id,
-                                OrderNo = outboundOrder.OrderNo,
-                                OrderType = outboundOrder.OrderType,
-                                OriginalQuantity = OriginalQuantity,
-                                Status = OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt(),
-                                StockId = x.Id,
-                                TaskNum = 0,
-                                OrderQuantity = OrderDetail.OrderQuantity,
-                                Unit = OrderDetail.Unit,
-                                ProductionDate = v.ProductionDate,
-                                EffectiveDate = v.EffectiveDate
-                            };
-                            outStockLockInfos.Add(outStockLockInfo);
-                        }
-                    });
-                    int overCount = x.Details.Where(x => x.StockQuantity == 0).Count();
-                    if (overCount == x.Details.Count) deStocks.Add(x);
-                    else upStocks.Add(x);
-                });
-                outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
-                OrderDetail.OrderDetailStatus = OrderDetail.OrderQuantity > OrderDetail.OverOutQuantity ? OrderDetailStatusEnum.AssignOverPartial.ObjToInt() : OrderDetailStatusEnum.Over.ObjToInt();
-                if (OrderDetail.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt())
-                {
-                    int overCount = outboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count();
-                    if (outboundOrder.Details.Count - 1 == overCount)
-                        outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
-                }
-                _unitOfWorkManage.BeginTran();
-                _outboundService.OutboundStockLockInfoService.AddData(outStockLockInfos);
-                _outboundService.OutboundOrderService.UpdateData(outboundOrder);
-                _outboundService.OutboundOrderDetailService.UpdateData(OrderDetail);
-                _stockRepository.StockInfoRepository.UpdateData(upStocks);
-                _stockRepository.StockInfoRepository.DeleteData(deStocks);
-                _stockRepository.StockInfoDetailRepository.UpdateData(upstockDetails);
-                _stockRepository.StockInfoDetailRepository.DeleteData(destockDetails);
-                _unitOfWorkManage.CommitTran();
-                #endregion
-
-                #region 涓婃姤ERP
-                if (outboundOrder.OrderStatus == OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt() && outboundOrder.OrderType==OutOrderTypeEnum.Issue.ObjToInt())
-                {
-                    //List<ERPPickModel> eRPPickModels = new List<ERPPickModel>();
-                    //outStockLockInfos.ForEach(x =>
-                    //{
-                    //    ERPPickItemModel pickItemModel = new ERPPickItemModel()
-                    //    {
-                    //        Lotno = x.BatchNo,
-                    //        Qty = x.AssignQuantity.ToString(),
-                    //        Location = warehouse.WarehouseCode
-                    //    };
-                    //    ERPPickModel pickModel = new ERPPickModel()
-                    //    {
-                    //        Rowindex = OrderDetail.RowNo,
-                    //        Material = OrderDetail.MaterielCode,
-                    //        Qty = pickItemModel.Qty,
-                    //        Dataitem = new List<ERPPickItemModel> { pickItemModel }
-                    //    };
-                    //    eRPPickModels.Add(pickModel);
-                    //});
-                    //ERPIssueItemModel issueItemModel = new ERPIssueItemModel()
-                    //{
-                    //    Pickcode = outboundOrder.UpperOrderNo,
-                    //    PickList = eRPPickModels
-                    //};
-                    //ERPIssueModel issueModel = new ERPIssueModel()
-                    //{
-                    //    UniqueTag = outboundOrder.Id.ToString(),
-                    //    Code = _outboundService.OutboundOrderService.CreateCodeByRule(nameof(RuleCodeEnum.FLCodeRule)),
-                    //    WarehouseCode = warehouse.WarehouseCode,
-                    //    Docremark = "",
-                    //    Deptno = outboundOrder.DepartmentCode,
-                    //    Deptname = outboundOrder.DepartmentName,
-                    //    Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                    //    Createuser = App.User.UserName,
-                    //    Issitem = new List<ERPIssueItemModel>() { issueItemModel }
-                    //};
-                    _invokeERPService.InvokeOutStandardsApi(_outboundService.OutboundOrderService.GetERPIssueModel(outboundOrder, warehouse.WarehouseCode));
-                }
-                #endregion
-
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        /// <summary>
-        /// 鐢熸垚鍑哄簱浠诲姟鍚庢暟鎹洿鏂板埌鏁版嵁搴�
-        /// </summary>
-        /// <param name="tasks"></param>
-        /// <param name="stockInfos"></param>
-        /// <param name="outboundOrderDetails"></param>
-        /// <param name="outStockLockInfos"></param>
-        /// <param name="locationInfos"></param>
-        /// <returns></returns>
-        public WebResponseContent GenerateOutboundTaskDataUpdate(List<Dt_Task> tasks, List<Dt_StockInfo>? stockInfos = null, List<Dt_OutboundOrderDetail>? outboundOrderDetails = null, List<Dt_OutStockLockInfo>? outStockLockInfos = null, List<Dt_LocationInfo>? locationInfos = null)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-
-                BaseDal.AddData(tasks);
-                if (stockInfos != null && stockInfos.Count > 0 && outboundOrderDetails != null && outboundOrderDetails.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0)
-                {
-                    stockInfos.ForEach(x =>
-                    {
-                        x.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
-                    });
-                    WebResponseContent content = _outboundService.OutboundOrderDetailService.LockOutboundStockDataUpdate(stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos, tasks: tasks);
-
-                    if (!content.Status)
-                    {
-                        _unitOfWorkManage.RollbackTran();
-                        return content;
-                    }
-                }
-                else if (outboundOrderDetails != null && outboundOrderDetails.Count > 0)
-                {
-                    outboundOrderDetails.ForEach(x =>
-                    {
-                        x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
-                    });
-                    Dt_OutboundOrder outboundOrder = _outboundRepository.OutboundOrderRepository.QueryFirst(x=>x.Id== outboundOrderDetails.FirstOrDefault().OrderId);
-                    if (outboundOrder.OrderStatus!=OutOrderStatusEnum.鍑哄簱涓�.ObjToInt())
-                    {
-                        _outboundRepository.OutboundOrderRepository.UpdateData(outboundOrder);
-                    }
-                    _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
-                }
-                _unitOfWorkManage.CommitTran();
-                PushTasksToWCS(tasks);
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-
-        }
-
-        /// <summary>
-        /// 鐢熸垚鍑哄簱浠诲姟
-        /// </summary>
-        /// <param name="keys">鍑哄簱鍗曟槑缁嗕富閿�</param>
-        /// <returns></returns>
-        public WebResponseContent GenerateOutboundTasks(int[] keys)
-        {
-            try
-            {
-                List<Dt_Task> tasks = new List<Dt_Task>();
-                List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>();
-                List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>();
-                List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>();
-                List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>();
-                List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>();
-
-                (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_OutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = OutboundTaskDataHandle(keys);
-                if (result.Item2 != null && result.Item2.Count > 0)
-                {
-                    stockInfos.AddRange(result.Item2);
-                }
-                if (result.Item3 != null && result.Item3.Count > 0)
-                {
-                    outboundOrderDetails.AddRange(result.Item3);
-                }
-                if (result.Item4 != null && result.Item4.Count > 0)
-                {
-                    outStockLockInfos.AddRange(result.Item4);
-                }
-                if (result.Item5 != null && result.Item5.Count > 0)
-                {
-                    locationInfos.AddRange(result.Item5);
-                }
-                if (result.Item1 != null && result.Item1.Count > 0)
-                {
-                    tasks.AddRange(result.Item1);
-                }
-
-                WebResponseContent content = GenerateOutboundTaskDataUpdate(tasks, stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos);
-                return content;
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        /// <summary>
-        /// 鐢熸垚鍑哄簱浠诲姟
-        /// </summary>
-        /// <param name="outboundId">鍑哄簱鍗曚富閿�</param>
-        /// <returns></returns>
-        public WebResponseContent GenerateOutboundTaskByHeadId(int outboundId)
-        {
-            try
-            {
-                List<int> keys = _outboundService.OutboundOrderDetailService.Repository.QueryData(x => x.Id, x => x.OrderId == outboundId);
-
-                return GenerateOutboundTasks(keys.ToArray());
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        #region
-        ///// <summary>
-        ///// 鐢熸垚鍑哄簱浠诲姟
-        ///// </summary>
-        ///// <param name="keys">鍑哄簱鍗曟槑缁嗕富閿�</param>
-        ///// <returns></returns>
-        //public WebResponseContent MESPPGenerateOutboundTasks(int[] keys)
-        //{
-        //    try
-        //    {
-        //        List<Dt_Task> tasks = new List<Dt_Task>();
-        //        List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>();
-        //        List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>();
-        //        List<Dt_MesPPOutboundOrderDetail> outboundOrderDetails = new List<Dt_MesPPOutboundOrderDetail>();
-        //        List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>();
-        //        List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>();
-
-        //        (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = MESPPOutboundTaskDataHandle(keys);
-        //        if (result.Item2 != null && result.Item2.Count > 0)
-        //        {
-        //            stockInfos.AddRange(result.Item2);
-        //        }
-        //        if (result.Item3 != null && result.Item3.Count > 0)
-        //        {
-        //            outboundOrderDetails.AddRange(result.Item3);
-        //        }
-        //        if (result.Item4 != null && result.Item4.Count > 0)
-        //        {
-        //            outStockLockInfos.AddRange(result.Item4);
-        //        }
-        //        if (result.Item5 != null && result.Item5.Count > 0)
-        //        {
-        //            locationInfos.AddRange(result.Item5);
-        //        }
-        //        if (result.Item1 != null && result.Item1.Count > 0)
-        //        {
-        //            tasks.AddRange(result.Item1);
-        //        }
-
-        //        WebResponseContent content = MESPPGenerateOutboundTaskDataUpdate(tasks, stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos);
-        //        return content;
-        //    }
-        //    catch (Exception ex)
-        //    {
-        //        _unitOfWorkManage.RollbackTran();
-        //        return WebResponseContent.Instance.Error(ex.Message);
-        //    }
-        //}
-
-        ///// <summary>
-        ///// 鍑哄簱浠诲姟鏁版嵁澶勭悊
-        ///// </summary>
-        ///// <param name="orderDetailId"></param>
-        ///// <param name="stockSelectViews"></param>
-        ///// <returns></returns>
-        ///// <exception cref="Exception"></exception>
-        //public (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) MESPPOutboundTaskDataHandle(int[] keys)
-        //{
-        //    List<Dt_Task> tasks = new List<Dt_Task>();
-        //    List<Dt_MesPPOutboundOrderDetail> outboundOrderDetailss = _outboundService.MesPPOutboundOrderDetailService.Repository.QueryData(x => keys.Contains(x.Id));
-        //    List<Dt_MesPPOutboundOrderDetail> outboundOrderDetails = BaseDal.Db.Queryable<Dt_MesPPOutboundOrderDetail>().Where(x => keys.Contains(x.Id)).ToList();
-        //    if (outboundOrderDetails == null || outboundOrderDetails.Count == 0)
-        //    {
-        //        throw new Exception("鏈壘鍒板嚭搴撳崟鏄庣粏淇℃伅");
-        //    }
-        //    if (outboundOrderDetails.FirstOrDefault(x => x.OrderDetailStatus > OrderDetailStatusEnum.New.ObjToInt() && x.OrderDetailStatus != OrderDetailStatusEnum.AssignOverPartial.ObjToInt()) != null)
-        //    {
-        //        throw new Exception("鎵�閫夊嚭搴撳崟鏄庣粏瀛樺湪鍑哄簱涓垨宸插畬鎴�");
-        //    }
-        //    List<Dt_StockInfo>? stockInfos = null;
-        //    List<Dt_MesPPOutboundOrderDetail>? orderDetails = null;
-        //    List<Dt_OutStockLockInfo>? outStockLockInfos = null;
-        //    List<Dt_LocationInfo>? locationInfos = null;
-        //    //if (outboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
-        //    {
-        //        (List<Dt_StockInfo>, List<Dt_MesPPOutboundOrderDetail>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.MesPPOutboundOrderDetailService.AssignStockOutbound(outboundOrderDetails);
-
-        //        if (result.Item1 != null && result.Item1.Count > 0)
-        //        {
-        //            Dt_MesPPOutboundOrder outboundOrder = _outboundService.MesPPOutboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetails.FirstOrDefault().OrderId);
-        //            TaskTypeEnum typeEnum = outboundOrder.OrderType switch
-        //            {
-        //                (int)OutOrderTypeEnum.Issue => TaskTypeEnum.Outbound,
-        //                (int)OutOrderTypeEnum.Allocate => TaskTypeEnum.OutAllocate,
-        //                (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality,
-        //                _ => new TaskTypeEnum()
-        //            };
-        //            tasks = GetTasks(result.Item1, typeEnum);
-        //            result.Item2.ForEach(x =>
-        //            {
-        //                x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
-        //            });
-        //            result.Item3.ForEach(x =>
-        //            {
-        //                x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt();
-        //            });
-
-        //            stockInfos = result.Item1;
-        //            orderDetails = result.Item2;
-        //            outStockLockInfos = result.Item3;
-        //            locationInfos = result.Item4;
-        //        }
-        //        else
-        //        {
-        //            throw new Exception("鏃犲簱瀛�");
-        //        }
-        //    }
-        //    //else
-        //    //{
-        //    //    List<Dt_OutStockLockInfo> stockLockInfos = _outboundService.OutboundStockLockInfoService.GetByOrderDetailId(outboundOrderDetail.OrderId, OutLockStockStatusEnum.宸插垎閰�);
-        //    //    if (stockLockInfos != null && stockLockInfos.Count > 0)
-        //    //    {
-        //    //        List<Dt_StockInfo> stocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockLockInfos.Select(x => x.PalletCode).Distinct().ToList());
-        //    //        tasks = GetTasks(stocks);
-        //    //    }
-        //    //}
-
-        //    return (tasks, stockInfos, orderDetails, outStockLockInfos, locationInfos);
-        //}
-
-        ///// <summary>
-        ///// 鐢熸垚鍑哄簱浠诲姟鍚庢暟鎹洿鏂板埌鏁版嵁搴�
-        ///// </summary>
-        ///// <param name="tasks"></param>
-        ///// <param name="stockInfos"></param>
-        ///// <param name="outboundOrderDetails"></param>
-        ///// <param name="outStockLockInfos"></param>
-        ///// <param name="locationInfos"></param>
-        ///// <returns></returns>
-        //public WebResponseContent MESPPGenerateOutboundTaskDataUpdate(List<Dt_Task> tasks, List<Dt_StockInfo>? stockInfos = null, List<Dt_MesPPOutboundOrderDetail>? outboundOrderDetails = null, List<Dt_OutStockLockInfo>? outStockLockInfos = null, List<Dt_LocationInfo>? locationInfos = null)
-        //{
-        //    try
-        //    {
-        //        _unitOfWorkManage.BeginTran();
-
-        //        BaseDal.AddData(tasks);
-        //        if (stockInfos != null && stockInfos.Count > 0 && outboundOrderDetails != null && outboundOrderDetails.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0)
-        //        {
-        //            stockInfos.ForEach(x =>
-        //            {
-        //                x.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
-        //            });
-        //            WebResponseContent content = _outboundService.MesPPOutboundOrderDetailService.LockOutboundStockDataUpdate(stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos, tasks: tasks);
-
-        //            if (!content.Status)
-        //            {
-        //                _unitOfWorkManage.RollbackTran();
-        //                return content;
-        //            }
-        //        }
-        //        else if (outboundOrderDetails != null && outboundOrderDetails.Count > 0)
-        //        {
-        //            outboundOrderDetails.ForEach(x =>
-        //            {
-        //                x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
-        //            });
-
-        //            _outboundService.MesPPOutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
-        //        }
-        //        _unitOfWorkManage.CommitTran();
-        //        PushTasksToWCS(tasks);
-        //        return WebResponseContent.Instance.OK();
-        //    }
-        //    catch (Exception ex)
-        //    {
-        //        _unitOfWorkManage.RollbackTran();
-        //        return WebResponseContent.Instance.Error(ex.Message);
-        //    }
-
-        //}
-        #endregion
-
-
-
-
-
-
-
-
 
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3