From dcecb039035f4b2e82e31c39b74db9402444c536 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 08 四月 2025 21:35:39 +0800
Subject: [PATCH] 代码更新,优化等内容

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs |   42 ++++++++++++++++++++++++++++++++----------
 1 files changed, 32 insertions(+), 10 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index d130c64..822d0f3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -18,6 +18,7 @@
 using MailKit.Search;
 using WIDESEA_External.Model;
 using WIDESEA_Core.CodeConfigEnum;
+using Microsoft.AspNetCore.Mvc;
 
 namespace WIDESEA_TaskInfoService
 {
@@ -81,16 +82,16 @@
         /// <param name="ProOutNo">鍑哄簱璁㈠崟鍙�</param>
         /// <param name="StationCode">绔欏彴鍦板潃</param>
         /// <returns></returns>
-        public WebResponseContent OutProductTask(string ProOutNo, string StationCode)
+        public WebResponseContent OutProductTask(int[] keys, string StationCode)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
                 //鑾峰彇鎴愬搧鍑哄簱璁㈠崟
-                Dt_ProOutOrder proOutOrder = _outboundService.ProOutOrderService.Repository.Db.Queryable<Dt_ProOutOrder>().Where(x => x.ProOutOrderNo == ProOutNo).Includes(x => x.Details).First();
-                if (proOutOrder==null)
+                List<Dt_ProOutOrderDetail> _ProOutOrderDetails = _outboundRepository.ProOutOrderDetailRepository.QueryData(x => keys.Contains(x.Id));
+                if (_ProOutOrderDetails.Count<=0)
                 {
-                    return content.Error("鍑哄簱璁㈠崟涓嶅瓨鍦�");
+                    return content.Error("鍕鹃�夎鍗曟槑缁嗕笉瀛樺湪");
                 }
                 List<Dt_Task> tasks = new List<Dt_Task>();
                 List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>();
@@ -99,7 +100,7 @@
                 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(proOutOrder);
+                OutProductTaskDataHandle(_ProOutOrderDetails);
                 if (result.Item2 != null && result.Item2.Count > 0)
                 {
                     proStockInfos.AddRange(result.Item2);
@@ -135,6 +136,10 @@
             }
             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
@@ -158,12 +163,19 @@
                 }
                 else if (proOutOrderDetails != null && proOutOrderDetails.Count > 0)
                 {
+                    //鑾峰彇鎴愬搧鍑哄簱鍗曚富琛�
+                    Dt_ProOutOrder proOutOrder = _outboundRepository.ProOutOrderRepository.QueryFirst(x => x.Id == proOutOrderDetails.FirstOrDefault().ProOrderId);
+                    if (proOutOrder.ProOrderStatus == OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+                    {
+                        proOutOrder.ProOrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
+                        _outboundRepository.ProOutOrderRepository.UpdateData(proOutOrder);
+                    }
                     proOutOrderDetails.ForEach(x =>
                     {
                         x.ProOrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
                     });
 
-                    _outboundService.ProOutOrderDetailService.Repository.UpdateData(proOutOrderDetails);
+                    _outboundRepository.ProOutOrderDetailRepository.UpdateData(proOutOrderDetails);
                 }
                 _unitOfWorkManage.CommitTran();
                 PushTasksToWCS(tasks);
@@ -180,17 +192,23 @@
         /// 澶勭悊鎴愬搧鍑哄簱鏁版嵁
         /// </summary>
         /// <returns></returns>
-        public (List<Dt_Task>, List<Dt_ProStockInfo>?, List<Dt_ProOutOrderDetail>?, List<Dt_OutProStockInfo>?, List<Dt_LocationInfo>?) OutProductTaskDataHandle(Dt_ProOutOrder proOutOrder)
+        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> proOutOrderDetails = new List<Dt_ProOutOrderDetail>();
+            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(proOutOrder.WarehouseId, proOutOrder);
+            (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,
@@ -647,7 +665,11 @@
                     {
                         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();

--
Gitblit v1.9.3