From 0a167891e323c630741072a6c6d8a430b2f698b5 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期四, 19 三月 2026 18:20:53 +0800
Subject: [PATCH] 1

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |   64 ++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 16 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index a8777b3..168fec9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -390,11 +390,19 @@
                             var response = responseModel(inboundOrder, 3, null, allocatefeedmodel);
                             if (response != null && response.IsSuccess)
                             {
-                                bool isAll = inboundOrder.Details.All(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt());
-                                int isAllReturnToMESStatus = isAll ? 1 : 3;
-                                _inboundOrderService.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = isAllReturnToMESStatus })
+                                var detailStatusList = _inboundOrderDetailService.Db.Queryable<Dt_InboundOrderDetail>()
+                                .Where(it => it.OrderId == inboundOrder.Id)
+                                .Select(it => it.OrderDetailStatus)
+                                .ToList();
+
+                                bool isAll = detailStatusList.Any()
+                                    ? detailStatusList.All(x => x == OrderDetailStatusEnum.Over.ObjToInt())
+                                    : false; 
+
+                                int mainReturnToMESStatus = isAll ? 1 : 3;
+                                _inboundOrderService.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = mainReturnToMESStatus })
                                 .Where(it => it.Id == inboundOrder.Id ).ExecuteCommand();
-                                _inboundOrderDetailService.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = isAllReturnToMESStatus })
+                                _inboundOrderDetailService.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = mainReturnToMESStatus })
                                 .Where(it => it.OrderId == inboundOrder.Id).ExecuteCommand();
                                 //鍥炰紶鎴愬姛搴撳瓨鎵嶅彲鐢�
                                 _stockRepository.Db.Updateable<Dt_StockInfoDetail>().SetColumns(it => new Dt_StockInfoDetail
@@ -404,11 +412,19 @@
                             }
                             else
                             {
-                                bool isAll = inboundOrder.Details.All(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt());
-                                int isAllReturnToMESStatus = isAll ? 2 : 4;
-                                _inboundOrderService.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = isAllReturnToMESStatus, Remark = response.ErrorMessage })
+                                var detailStatusList = _inboundOrderDetailService.Db.Queryable<Dt_InboundOrderDetail>()
+                                .Where(it => it.OrderId == inboundOrder.Id)
+                                .Select(it => it.OrderDetailStatus)
+                                .ToList();
+
+                                bool isAll = detailStatusList.Any()
+                                    ? detailStatusList.All(x => x == OrderDetailStatusEnum.Over.ObjToInt())
+                                    : false;
+
+                                int mainReturnToMESStatus = isAll ? 2 : 4;
+                                _inboundOrderService.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = mainReturnToMESStatus, Remark = response.ErrorMessage })
                                 .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
-                                _inboundOrderDetailService.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = isAllReturnToMESStatus })
+                                _inboundOrderDetailService.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = mainReturnToMESStatus })
                                .Where(it => it.OrderId == inboundOrder.Id).ExecuteCommand();
                             }
                         }
@@ -461,11 +477,19 @@
 
                             if (response != null && response.IsSuccess)
                             {
-                                bool isAll = inboundOrder.Details.All(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt());
-                                int isAllReturnToMESStatus = isAll ? 1 : 3;
-                                _inboundOrderService.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = isAllReturnToMESStatus, Remark = "" })
+                                var detailStatusList = _inboundOrderDetailService.Db.Queryable<Dt_InboundOrderDetail>()
+                                .Where(it => it.OrderId == inboundOrder.Id)
+                                .Select(it => it.OrderDetailStatus)
+                                .ToList();
+
+                                bool isAll = detailStatusList.Any()
+                                    ? detailStatusList.All(x => x == OrderDetailStatusEnum.Over.ObjToInt())
+                                    : false;
+
+                                int mainReturnToMESStatus = isAll ? 1 : 3;
+                                _inboundOrderService.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = mainReturnToMESStatus, Remark = "" })
                                 .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
-                                _inboundOrderDetailService.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = isAllReturnToMESStatus })
+                                _inboundOrderDetailService.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = mainReturnToMESStatus })
                                 .Where(it => it.OrderId == inboundOrder.Id).ExecuteCommand();
                                 //鍥炰紶鎴愬姛搴撳瓨鎵嶅彲鐢�
                                 _stockRepository.Db.Updateable<Dt_StockInfoDetail>().SetColumns(it => new Dt_StockInfoDetail
@@ -475,11 +499,19 @@
                             }
                             else
                             {
-                                bool isAll = inboundOrder.Details.All(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt());
-                                int isAllReturnToMESStatus = isAll ? 2 : 4;
-                                _inboundOrderService.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = isAllReturnToMESStatus, Remark = response.ErrorMessage })
+                                var detailStatusList = _inboundOrderDetailService.Db.Queryable<Dt_InboundOrderDetail>()
+                                .Where(it => it.OrderId == inboundOrder.Id)
+                                .Select(it => it.OrderDetailStatus)
+                                .ToList();
+
+                                bool isAll = detailStatusList.Any()
+                                    ? detailStatusList.All(x => x == OrderDetailStatusEnum.Over.ObjToInt())
+                                    : false;
+
+                                int mainReturnToMESStatus = isAll ? 2 : 4;
+                                _inboundOrderService.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = mainReturnToMESStatus, Remark = response.ErrorMessage })
                                 .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
-                                _inboundOrderDetailService.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = isAllReturnToMESStatus })
+                                _inboundOrderDetailService.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = mainReturnToMESStatus })
                                .Where(it => it.OrderId == inboundOrder.Id).ExecuteCommand();
                             }
                         }

--
Gitblit v1.9.3