From 44b83f33ff3a35edced78d89927a734f19de81ba Mon Sep 17 00:00:00 2001
From: xiaojiao <xiaojiao@kaokeziliao.com>
Date: 星期日, 28 十二月 2025 18:00:02 +0800
Subject: [PATCH] 更改空托入库,更改出库测量对应楼层禁用,

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA.Services/Common/GetEmptyLocationAction.cs |   49 +++++++++++++++++++++++++++++++------------------
 1 files changed, 31 insertions(+), 18 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA.Services/Common/GetEmptyLocationAction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA.Services/Common/GetEmptyLocationAction.cs"
index f7a4b94..b95909d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA.Services/Common/GetEmptyLocationAction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA.Services/Common/GetEmptyLocationAction.cs"
@@ -31,6 +31,19 @@
             List<Dt_taskinfo> inboundTask = Dt_taskinfoRepository.Instance.Find(r => r.task_type.Contains("Inbound"));
             List<int> listLayer = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8 };
 
+
+            //// 鏇存敼鑾峰彇璐т綅鐨勪俊鎭� 杩欓噷瑕佸啓涓�涓惊鐜�
+            //List<Dt_taskinfo> outboundTask_temp = Dt_taskinfoRepository.Instance.Find(x => x.task_tolocationid == "10301" || x.task_endstation == "10301");
+            //if (outboundTask_temp != null)
+            //{
+            //    string temp_layer = "";
+
+            //    foreach (var item in outboundTask_temp)
+            //    {
+
+            //    }
+            //}
+
             if (null != inboundTask && inboundTask.Count > 0)
             {
                 foreach (var item in inboundTask)
@@ -44,24 +57,29 @@
                         listLayer.Remove(layer);
                     }
                 }
-                //List<string> fromStation = inboundTask.Select(r => r.task_tolocationid).ToList();
-                //foreach (var item in fromStation)
-                //{
-                //    string[] location = item.Split('-');
-                //    //鑾峰彇褰撳墠鏈変换鍔$殑灞�
-                //    int layer = int.Parse(location[0]);
-                //    listLayer.Remove(layer);
-                //}
             }
 
-            List<Dt_taskinfo> outboundTask = Dt_taskinfoRepository.Instance.Find(r => ((r.task_type == TaskType.TaskType_Box_Pallet_Measure_Out.ToString() /*|| r.task_type == TaskType.TaskType_CheckOutbound.ToString()*/)
-      &&
-  (r.task_state.Equals(TaskState.TaskState_RGV_Received.ToString()) || r.task_state.Equals(TaskState.TaskState_RGV_Finished.ToString())))
-  || r.task_type == TaskType.TaskType_Box_Pallet_Measure_Back.ToString());
+            //          List<Dt_taskinfo> outboundTask = Dt_taskinfoRepository.Instance.Find(r => ((r.task_type == TaskType.TaskType_Box_Pallet_Measure_Out.ToString())
+            //    && (r.task_state.Equals(TaskState.TaskState_RGV_Received.ToString()) || r.task_state.Equals(TaskState.TaskState_RGV_Finished.ToString())))
+            //|| r.task_type == TaskType.TaskType_Box_Pallet_Measure_Back.ToString());
+            List<Dt_taskinfo> outboundTask = Dt_taskinfoRepository.Instance.Find(r =>(r.task_type == TaskType.TaskType_Box_Pallet_Measure_Out.ToString() || r.task_type == TaskType.TaskType_Box_Pallet_Measure_Back.ToString())
+            && (r.task_state != TaskState.TaskState_Create.ToString()));
+
+            if (outboundTask.Count < 3)
+            {
+                int crtacount = 3 - outboundTask.Count;
+                List<Dt_taskinfo> outboundcCrteateTask = Dt_taskinfoRepository.Instance.Find(r => r.task_type == TaskType.TaskType_Box_Pallet_Measure_Out.ToString() 
+            && r.task_state == TaskState.TaskState_Create.ToString()).OrderBy(r=>r.task_createtime).Take(crtacount).ToList();
+
+                outboundTask.AddRange(outboundcCrteateTask);
+            }
+
 
             if (null != outboundTask && outboundTask.Count > 0)
             {
-                List<string> fromStation = outboundTask.Select(r => r.task_fromlocationid).ToList();
+                List<string> fromStation = outboundTask.Where(r=>r.task_type == TaskType.TaskType_Box_Pallet_Measure_Out.ToString()).Select(r => r.task_fromlocationid).ToList();
+                fromStation.AddRange(outboundTask.Where(r => r.task_type == TaskType.TaskType_Box_Pallet_Measure_Back.ToString()).Select(r => r.task_tolocationid).ToList());
+
                 foreach (var item in fromStation)
                 {
                     string[] location = item.Split('-');
@@ -131,11 +149,6 @@
 
                     return locationinfo;
             }
-
-            //Dt_locationinfo locationinfo = Dt_locationinfoRepository.Instance.Find(x => x.location_state == LocationState.LocationState_Empty.ToString() &&
-            //!locationId.Contains(x.location_id) && !x.location_islocked).OrderBy(x => x.location_layer).ThenBy(x => x.location_column).FirstOrDefault();
-            //if (null != locationinfo)
-            //    return locationinfo;
             throw new Exception("鏆傛棤璐т綅鍙垎閰�");
         }
     }

--
Gitblit v1.9.3