From 75e3bca44b111c167b9389e4e51b2ce577a9f9e0 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期日, 10 八月 2025 10:35:50 +0800
Subject: [PATCH] 优化更新

---
 WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |  109 +++++++++++++++++++++++++-----------------------------
 1 files changed, 50 insertions(+), 59 deletions(-)

diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
index 3310331..f264e11 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -462,7 +462,8 @@
         {
             // 鏇存柊鍏ュ簱鍗曟槑缁嗙姸鎬�
             UpdateInboundOrderDetails(stockInfo, inboundOrder, ref inboundOrderDetail);
-
+            ///鏇存柊搴撳瓨鐘舵��
+            stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
             // 鏇存柊搴撳瓨鏄庣粏鐘舵��
             stockInfo.Details.ForEach(x => x.Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt());
 
@@ -840,17 +841,15 @@
                 int lastStatus = locationInfo.LocationStatus;
                 locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
 
-
-
                 Dt_OutboundOrderDetail outboundOrderDetails = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrderDetail>()
                     .Where(x => x.BatchNo == stockInfo.Details.FirstOrDefault().BatchNo)
                     .First();
                 if (outboundOrderDetails == null) return WebResponseContent.Instance.Error("鏈壘鍒板嚭搴撳崟淇℃伅");
 
                 Dt_OutboundOrder inboundOrder = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrder>()
-    .Where(x => x.Id == outboundOrderDetails.OrderId)
-    .Includes(x => x.Details)
-    .First();
+                .Where(x => x.Id == outboundOrderDetails.OrderId)
+                .Includes(x => x.Details)
+                .First();
 
                 if (inboundOrder == null) return WebResponseContent.Instance.Error("鏈壘鍒板嚭搴撳崟淇℃伅");
                 // 2. 澶勭悊鍑哄簱璁㈠崟璇︽儏
@@ -859,7 +858,7 @@
                 UpdateOutboundOrderDetails(stockInfo, inboundOrder, ref outboundOrderDetails);
 
                 // 3. 鎵ц鏍稿績鍑哄簱閫昏緫
-                return ExecuteOutboundLogic(task, stockInfo, locationInfo, outboundOrderDetails);
+                return ExecuteOutboundLogic(task, stockInfo, locationInfo, outboundOrderDetails, inboundOrder);
             }
             catch (Exception ex)
             {
@@ -917,18 +916,18 @@
         //}
 
         private WebResponseContent ExecuteOutboundLogic(Dt_Task task, Dt_StockInfo stockInfo,
-            Dt_LocationInfo locationInfo, Dt_OutboundOrderDetail outboundOrderDetails)
+            Dt_LocationInfo locationInfo, Dt_OutboundOrderDetail outboundOrderDetails,Dt_OutboundOrder inboundOrder)
         {
             try
             {
                 _unitOfWorkManage.BeginTran();
-
-
+                ///鏇存柊鍑哄簱鍗�
+                _outboundService.OutboundOrderService.Repository.UpdateData(inboundOrder);
                 // 鏇存柊鍑哄簱璁㈠崟璇︽儏
                 _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
 
                 // 鏇存柊搴撳瓨鐘舵��
-                UpdateStockStatus(stockInfo, locationInfo);
+                DeleteAndMoveIntoHtStockStatus(stockInfo);
 
                 // 鏇存柊璐т綅鐘舵��
                 UpdateLocationStatus(locationInfo);
@@ -971,8 +970,7 @@
                 throw;
             }
         }
-        private void UpdateOutboundOrderDetails(Dt_StockInfo stockInfo, Dt_OutboundOrder inboundOrder,
-    ref Dt_OutboundOrderDetail inboundOrderDetail)
+        private void UpdateOutboundOrderDetails(Dt_StockInfo stockInfo, Dt_OutboundOrder inboundOrder,ref Dt_OutboundOrderDetail inboundOrderDetail)
         {
             int overCount = inboundOrder.Details.Count(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt());
             inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.BatchNo == stockInfo.Details.FirstOrDefault()?.BatchNo);
@@ -1000,16 +998,10 @@
             }
         }
 
-        private void UpdateStockStatus(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo)
+        private void DeleteAndMoveIntoHtStockStatus(Dt_StockInfo stockInfo)
         {
-            stockInfo.LocationCode = "";
-            stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
-            stockInfo.Details.ForEach(x =>
-            {
-                x.Status = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
-            });
-            _stockRepository.StockInfoRepository.UpdateData(stockInfo);
-            _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details);
+            _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
+            _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
         }
 
         private void UpdateLocationStatus(Dt_LocationInfo locationInfo)
@@ -1021,6 +1013,7 @@
 
         private void CompleteTask(Dt_Task task)
         {
+            task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt();
             BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
         }
 
@@ -1129,48 +1122,46 @@
 
         private void SendNormalOutboundToWMS(Dt_Task task, Dt_OutboundOrder outboundOrder,
             Dt_StockInfoDetail stockInfoDetail, Dt_OutboundOrderDetail outDetail)
-        {
-
-
-            //List<Dt_StockInfo> StockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == task.WarehouseId).Includes(x => x.Details).Where(x => x.Details.Any(v => v.BatchNo == outDetail.BatchNo)).ToList();
-            List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.OrderNo == outboundOrder.OrderNo);
-
-
-            if (outStockLockInfos.Count == 0) throw new Exception("鏈壘鍒板簱瀛樹俊鎭�");
-
-            // 鏋勫缓鍥炰紶鏁版嵁锛屽皢鎵�鏈夊尮閰嶇殑搴撳瓨鏄庣粏鍔犲叆 DetailList
-            var passBack = new HouseoutboundPassBack
             {
-                ApiType = "InventoryAllocateController",
-                Method = "AsrsFinishedStockCount",
-                Parameters = new List<HouseoutboundPassBack.datas>
-    {
-        new HouseoutboundPassBack.datas
-        {
-            Value = new List<HouseoutboundPassBack.datas.data1>
-            {
-                new HouseoutboundPassBack.datas.data1
+
+                //List<Dt_StockInfo> StockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == task.WarehouseId).Includes(x => x.Details).Where(x => x.Details.Any(v => v.BatchNo == outDetail.BatchNo)).ToList();
+                List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.OrderNo == outboundOrder.OrderNo);
+
+                if (outStockLockInfos.Count == 0) throw new Exception("鏈壘鍒板簱瀛樹俊鎭�");
+
+                // 鏋勫缓鍥炰紶鏁版嵁锛屽皢鎵�鏈夊尮閰嶇殑搴撳瓨鏄庣粏鍔犲叆 DetailList
+                var passBack = new HouseoutboundPassBack
                 {
-                    No = outboundOrder.OrderNo,
-                    OutWareHouse = task.Roadway,
-                    TransactionCode = outboundOrder.TransactionCode,
-                    InoutType = outboundOrder.OrderType,
-                    OrderType = outboundOrder.InoutType,
-                    DetailList = outStockLockInfos.Select(d => new HouseoutboundPassBack.datas.data1.Inbound
-                        {
-                            LinId = d.LinId?? "",
-                            LPN_No = d.PalletCode,
-                            MaterielCode = d.MaterielCode?? "",
-                            OrderQuantity = d.OrderQuantity,
-                            BatchNo = d.BatchNo,
-                            FinishQty = d.OrderQuantity,
-                            LocationName = d.LocationCode
-                        })
-                        .ToList()
+                    ApiType = "InventoryAllocateController",
+                    Method = "AsrsFinishedStockCount",
+                    Parameters = new List<HouseoutboundPassBack.datas>
+            {
+            new HouseoutboundPassBack.datas
+            {
+                Value = new List<HouseoutboundPassBack.datas.data1>
+                {
+                    new HouseoutboundPassBack.datas.data1
+                    {
+                        No = outboundOrder.OrderNo,
+                        OutWareHouse = task.Roadway,
+                        TransactionCode = outboundOrder.TransactionCode,
+                        InoutType = outboundOrder.OrderType,
+                        OrderType = outboundOrder.InoutType,
+                        DetailList = outStockLockInfos.Select(d => new HouseoutboundPassBack.datas.data1.Inbound
+                            {
+                                LinId = d.LinId?? "",
+                                LPN_No = d.PalletCode,
+                                MaterielCode = d.MaterielCode?? "",
+                                OrderQuantity = d.OrderQuantity,
+                                BatchNo = d.BatchNo,
+                                FinishQty = d.OrderQuantity,
+                                LocationName = d.LocationCode
+                            })
+                            .ToList()
 
+                    }
                 }
             }
-        }
     }
             };
 

--
Gitblit v1.9.3