From 06747ef981873358950982e7a53c6d221ef93ac3 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期四, 17 七月 2025 17:19:24 +0800
Subject: [PATCH] 11

---
 HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs |   69 +++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
index 28101f5..b587da0 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
@@ -1571,11 +1571,11 @@
         /// <param name="taskName"></param>
         /// <returns></returns>
         /// <exception cref="NotImplementedException"></exception>
-        internal static Location BCPFullOut(SqlSugarClient db, string taskName, string itemCode)
+        internal static Location BCPFullOut(SqlSugarClient db, string taskName, string itemCode,string batch)
         {
             Location result = null;
 
-            LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱被鍨嬶細{taskName}锛岀墿鏂欑紪鐮侊細{itemCode}");
+            LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱被鍨嬶細{taskName}锛岀墿鏂欑紪鐮侊細{itemCode},鎵规鍙凤細{batch}");
             if (taskName.Contains("鍗充骇"))
             {
                 //娉ㄥ鏈哄嵆浜у嵆鐢ㄤ笅绾匡紝棣栧厛涓嬬嚎鍒板嵆浜у嵆鐢ㄦ弧妗嗙嚎杈癸紝婊$湺绾胯竟婊′簡锛屼笅鍒板嵆浜у嵆鐢ㄦ弧妗嗙紦瀛樺尯锛屾弧妗嗙紦瀛樺尯婊′簡锛屼笅鍒板叆搴撴帴椹冲爢鍙犱綅
@@ -2558,5 +2558,70 @@
             NDCApi.CancelOrder(TN_Task.S_CODE.Trim());
             OperateStatus(TN_Task, 7);
         }
+
+        internal static Location BCPInOrOutTwo(SqlSugarClient db, string areaName, string itemCode)
+        {
+            Location result = null;
+            var areaInfo = Settings.areaInfos.Where(a => a.areaName.Contains(areaName) && a.enable == 1).OrderByDescending(a => a.pri).ToList();
+            if (areaInfo.Count > 0)
+            {
+                foreach (var it in areaInfo)
+                {
+                    LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�area锛歿it.areaName},itemCode:{itemCode}");
+                    var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == it.areaCode && a.N_CURRENT_NUM > 0).OrderBy(a => a.N_ROW).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).Includes(a => a.LocCntrRel).ToList();
+                    if (locList.Count > 0)
+                    {
+                        LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�鏌ヨ鍒板彲鍑鸿揣浣嶆暟閲忥細{locList.Count}");
+                        foreach (var a in locList)
+                        {
+                            LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�鏌ヨ璐т綅锛歿a.S_CODE},閿佺姸鎬侊細{a.S_LOCK_STATE}");
+                            if (a.S_LOCK_STATE == "鏃�)
+                            {
+                                var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_CODE).First();
+                                if (cntrInfo != null)
+                                {
+                                    LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�褰撳墠璐т綅缁戝畾鐨勬墭鐩樼爜涓猴細{cntrInfo.S_CNTR_CODE}");
+                                    string endItemCode = "";
+                                    var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First();
+                                    if (itemInfo != null)
+                                    {
+                                        endItemCode = itemInfo.S_ITEM_CODE;
+                                    }
+                                    if (endItemCode == itemCode)
+                                    {
+                                        LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�褰撳墠璐т綅缁戝畾鐨勭墿鏂欑紪鐮佷负锛歿endItemCode}锛岀墿鏂欑被鍨嬩负锛歿itemInfo.S_BATCH_NO},缁戝畾鏃堕棿涓猴細{itemInfo.T_CREATE}");
+                                        if ((itemInfo.S_BATCH_NO == "闈炲嵆浜� && itemInfo.T_CREATE.AddHours(Settings.lQHours) <= DateTime.Now) || itemInfo.S_BATCH_NO == "鍗充骇")
+                                        {
+                                            //闈炲嵆浜х摱鍧渶瑕佸垽鏂喎鍗存椂闂存槸鍚﹀ぇ浜庝竴瀹氭椂闂�+                                            //鍒ゆ柇褰撳墠鎺掓湁鏃犻攣
+                                            var lockInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == it.areaCode && b.N_ROW == a.N_ROW && (b.S_LOCK_STATE == "鍏ュ簱閿� || b.S_LOCK_STATE == "鍑哄簱閿�)).First();
+                                            if (lockInfo == null)
+                                            {
+                                                result = a;
+                                                break;
+                                            }
+                                            else
+                                            {
+                                                LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�褰撳墠鎺掓湁閿侊紝璐т綅鍙凤細{lockInfo.S_CODE}");
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    if (result != null)
+                    {
+                        break;
+                    }
+                }
+
+            }
+            else
+            {
+                LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩愶細{areaName}鏈厤缃�);
+            }
+            return result;
+        }
     }
 }

--
Gitblit v1.9.1