From cb5c4a6e74c9cc070a67051256692b82c3c8b8f0 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期三, 18 六月 2025 17:12:03 +0800
Subject: [PATCH] 11

---
 HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs                              |   24 -
 HH.WCS.Mobox3.NongFuLinZhi/Program.cs                                            |    4 
 HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs                                 |    4 
 HH.WCS.Mobox3.NongFuLinZhi/.vs/HH.WCS.Mobox3.NFLZ/v17/DocumentLayout.backup.json |   65 ++++++
 HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs                                       |  251 +++++++++++++++++-------
 HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs                                |  220 +--------------------
 HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs                                       |    2 
 7 files changed, 266 insertions(+), 304 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/.vs/HH.WCS.Mobox3.NFLZ/v17/DocumentLayout.backup.json b/HH.WCS.Mobox3.NongFuLinZhi/.vs/HH.WCS.Mobox3.NFLZ/v17/DocumentLayout.backup.json
new file mode 100644
index 0000000..517e611
--- /dev/null
+++ b/HH.WCS.Mobox3.NongFuLinZhi/.vs/HH.WCS.Mobox3.NFLZ/v17/DocumentLayout.backup.json
@@ -0,0 +1,65 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u519C\u592B\u6797\u829D\\HH.WCS.Mobox3.NongFuLinZhi\\",
+  "Documents": [],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": -1,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
+            }
+          ]
+        },
+        {
+          "DockedWidth": 22,
+          "SelectedChildIndex": -1,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:1:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/Program.cs b/HH.WCS.Mobox3.NongFuLinZhi/Program.cs
index 52b15a2..db333eb 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/Program.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/Program.cs
@@ -98,7 +98,9 @@
 
                 //tasks.Add(GetTask(Monitor.CheckDevice));
                 tasks.Add(GetTask(Monitor.BottleBlankTransportation)); //鎺ラ┏浣嶅叆搴�-                //tasks.Add(GetTask(Monitor.BCPWorkSurveillance)); //鍗婃垚鍝佸伐鍗曠洃鎺�+                tasks.Add(GetTask(Monitor.PPFDFullIn)); //鐡跺澂缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭
+                tasks.Add(GetTask(Monitor.PGFDFullIn)); //鐡剁洊缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭
+
 
                 Task.WaitAll(tasks.ToArray());
             }
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
index 81846c5..a08a08a 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
@@ -9,6 +9,7 @@
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
+using static HH.WCS.Mobox3.NFLZ.wms.WMSHelper.AddChangeModel;
 using static System.Runtime.CompilerServices.RuntimeHelpers;
 
 namespace HH.WCS.Mobox3.NFLZ.core
@@ -60,10 +61,11 @@
                 if (locInfo != null)
                 {
                     LogHelper.Info($"銆愮摱鐩栨弧鎵樿浆杩愩�鐡跺澂鎺ラ┏浣嶆煡璇㈠埌闇�叆搴撶殑鐡跺澂锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}");
-                    if (locInfo.LocCntrRel != null)
+                    string cntrCode = getCntrCode(db, locInfo);
+                    if (string.IsNullOrEmpty(cntrCode))
                     {
                         //鍒涘缓浣滀笟
-                        WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, locInfo.LocCntrRel.S_CNTR_CODE, "鐡剁洊");
+                        WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntrCode, "鐡剁洊");
                     }
                     else
                     {
@@ -77,15 +79,23 @@
             }
             #endregion
 
-            #region 鐡跺澂绌烘墭鍏ュ簱
+            #region 鐡剁洊绌烘墭鍏ュ簱
             areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜х┖妗� && a.enable == 1).FirstOrDefault();
             if(areaInfo != null)
             {
-                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
-                if(locInfo != null && locInfo.LocCntrRel != null)
+                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First();
+                if(locInfo != null)
                 {
-                    //鍒涘缓浣滀笟
-                    WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鐡剁洊绌烘墭鍏ュ簱", locInfo.LocCntrRel.S_CNTR_CODE, "鐡剁洊");
+                    string cntrCode = getCntrCode(db, locInfo);
+                    if (string.IsNullOrEmpty(cntrCode))
+                    {
+                        //鍒涘缓浣滀笟
+                        WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鐡剁洊绌烘墭鍏ュ簱", cntrCode, "鐡剁洊");
+                    }
+                    else
+                    {
+                        LogHelper.Info($"銆愮摱鐩栫┖鎵樿浆杩愩�褰撳墠璐т綅鏈粦瀹氭墭鐩樼爜锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}");
+                    }
                 }
             }
             else
@@ -101,18 +111,16 @@
                 var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First();
                 if (locInfo != null)
                 {
-                    string cntr = "";
-                    var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == locInfo.S_CODE).ToList();
-                    if (cntrList.Count > 0)
+                    string cntrCode = getCntrCode(db, locInfo);
+                    if (!string.IsNullOrEmpty(cntrCode))
                     {
-                        foreach (var a in cntrList)
-                        {
-                            cntr = cntr + a.S_CNTR_CODE + ",";
-                        }
+                        //鍒涘缓浣滀笟
+                        WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntrCode, "鐡跺澂");
                     }
-                    cntr = cntr.TrimEnd(',');
-                    //鍒涘缓浣滀笟
-                    WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntr, "鐡跺澂");
+                    else
+                    {
+                        LogHelper.Info($"銆愮摱鑳氭弧鎵樿浆杩愩�褰撳墠璐т綅鏈粦瀹氭墭鐩樼爜锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}");
+                    }
                 }
             }
             else
@@ -121,90 +129,175 @@
             }
 
             #endregion
-
         }
 
         /// <summary>
-        /// 鍗婃垚鍝佸伐鍗曠洃鎺�+        /// 鐡跺澂缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭
         /// </summary>
-        /// <exception cref="NotImplementedException"></exception>
-        internal static void BCPWorkSurveillance()
+        internal static void PPFDFullIn()
         {
-            //鐡剁洊缈绘枟鏈哄伐鍗�-            //寮�惎锛屾煡璇�鐡剁洊闈炴�浜ф�鐢�鐗╂枡鏄惁婊★紝涓嶆弧鍒欒ˉ鍏呯墿鏂�-            //鍏抽棴锛�1銆佹煡璇�鐡剁洊绌烘墭 鏄惁杩樻湁鎵樼洏锛屾湁鍒欏叆搴� 2銆佹煡璇㈢摱鐩栭潪鍗充骇鍗崇敤 鏄惁鏈夌墿鏂欙紝 鏈夊垯鍏ュ簱
-            //鐡跺澂缈绘枟鏈�-            //寮�惎锛屾煡璇㈡槸鍚︿负闈炲嵆浜у嵆鐢紝濡傛灉涓洪潪鍗充骇鍗崇敤锛屽垯鍒ゆ柇鐡跺澂闈炲嵆浜у嵆鐢ㄥ簱鍖烘槸鍚︽弧锛�涓嶆弧鍒欒ˉ绌虹墿鏂�-            //鍏抽棴锛屾煡璇�鐡跺澂闈炲嵆浜у嵆鐢�鐡跺澂鍗充骇鍗崇敤A 鐡跺澂鍗充骇鍗崇敤B 鏄惁鏈夌墿鏂欙紝鏈夊垯鍏ュ簱
-            //鐡跺澂娉ㄥ鏈�-            //寮�惎锛屾煡璇�鐡跺澂绌烘墭 鏄惁绌烘墭鏁伴噺澶т簬3鎵橈紝濡傛灉涓嶅ぇ浜庯紝鍒欒ˉ绌烘墭
-            //鍏抽棴锛屾煡璇�鐡跺澂绌烘墭 鏄惁鏈夌┖鎵橈紝鏈夊垯鍏ュ簱
-
-
-
-            //鍒ゆ柇褰撳墠鍗婃垚鍝佸伐鍗曟槸鍚︽湁鎵ц涓殑浠诲姟
-            //宸ュ崟绫诲瀷锛�1銆佸啘澶灄鑺�鐡跺澂鏈�2銆佸啘澶灄鑺�鐡剁洊缈绘枟鏈�3銆佸啘澶灄鑺�鐡跺澂缈绘枟鏈�-            bool PPZUUSE = false; //鐡跺澂鏈烘槸鍚︿娇鐢�-            bool PPFDUSE = false; //鐡跺澂缈绘枟鏈烘槸鍚︿娇鐢�-            bool PGFDUSE = false; //鐡剁洊缈绘枟鏈烘槸鍚︿娇鐢�-
+            //浜х嚎鍙�锛�鍐滃か鏋楄姖-1鍙风摱鍧炕鏂楁満
             var db = new SqlHelper<object>().GetInstance();
-            var workList = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_WorkState == "鎵ц涓�).ToList();
-            if (workList.Count > 0)
+            var bcpWorkList = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("鐡跺澂缈绘枟鏈�) && a.S_UsingNow == "N" && a.S_WorkState == "鎵ц涓�).ToList();
+            if(bcpWorkList.Count > 0)
             {
-                foreach (var a in workList)
+                bcpWorkList.ForEach(a => 
                 {
-                    if (a.S_PLineNo == "鍐滃か鏋楄姖-鐡跺澂鏈�)
+                    string areaName = a.S_PLineNo.Split('-')[1].Substring(0, 1) + "鍙风摱鑳氱炕鏂楁満闈炲嵆浜ф弧妗�;
+                    var areaInfo = Settings.areaInfos.Where(b => b.areaName == areaName && b.enable == 1).FirstOrDefault();
+                    if(areaInfo != null)
                     {
-                        PPZUUSE = true;
-                    }
-                    else if (a.S_PLineNo == "鍐滃か鏋楄姖-鐡剁洊缈绘枟鏈�)
-                    {
-                        PGFDUSE = true;
+                        var locInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == areaInfo.areaCode && b.N_CURRENT_NUM == 0 && b.S_LOCK_STATE == "鏃�).First();
+                        if(locInfo != null)
+                        {
+                            //鐢熸垚浠诲姟
+                            Location location = TaskProcess.BCPInOrOut(db, false, "鐡跺澂搴撳尯", a.S_ItemCode);
+                            if(location != null)
+                            {
+                                string cntrCode = getCntrCode(db,location);
+                                //鍒涘缓浣滀笟
+                                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炴�浜цˉ婊℃", cntrCode, "鐡跺澂");
+                            }
+                        }
                     }
                     else
                     {
-                        PPFDUSE = true;
+                        LogHelper.Info($"{areaName}鏈厤缃�);
                     }
-                }
+                });
             }
-
-            //鐡跺澂鏈轰娇鐢紝鍒欎粠 鐡跺澂搴撳尯 琛ュ厖绌烘墭鍒�鐡跺澂绌烘墭 锛屾湭浣跨敤锛屽垯灏�鐡跺澂绌烘墭 鐨勭┖鎵�绉诲埌 鐡跺澂搴撳尯
-            //鐡跺澂缈绘枟鏈轰娇鐢紝鍒欎粠 鐡跺澂搴撳尯 琛ュ厖绌烘墭鍒�鐡跺澂鍗充骇鍗崇敤/鐡跺澂闈炲嵆浜у嵆鐢�锛屾湭浣跨敤锛屽垯灏�鐡跺澂鍗充骇鍗崇敤/鐡跺澂闈炲嵆浜у嵆鐢�鐨勭┖鎵�绉诲埌 鐡跺澂搴撳尯
-            //鐡剁洊缈绘枟鏈轰娇鐢紝鍒欎粠 鐡剁洊搴撳尯 琛ュ厖绌烘墭鍒�鐡跺澂闈炲嵆浜у嵆鐢�锛屾湭浣跨敤锛屽垯灏�鐡跺澂闈炲嵆浜у嵆鐢�鐨勭┖鎵�绉诲埌 鐡剁洊搴撳尯
-
-            TaskProcess.BCPYiKu(PPZUUSE, "鐡跺澂娉ㄥ鏈�);
-            TaskProcess.BCPYiKu(PPFDUSE, "鐡跺澂缈绘枟鏈�);
-            TaskProcess.BCPYiKu(PGFDUSE, "鐡剁洊缈绘枟鏈�);
-
         }
 
-        internal static void JBDEIN()
+        private static string getCntrCode(SqlSugar.SqlSugarClient db, Location location)
         {
-            var db = new SqlHelper<object>().GetInstance();
-            var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍏ュ簱鎺ラ┏" && a.enable == 1).FirstOrDefault();
-            if(areaInfo != null)
+            string cntr = "";
+            var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == location.S_CODE).OrderBy(a => a.T_CREATE).ToList();
+            if(cntrList.Count > 0)
             {
-                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First();
-                if(locInfo != null)
+                foreach(var a in cntrList)
                 {
-                    string cntr = "";
-                    var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == locInfo.S_CODE).ToList();
-                    if(cntrList.Count > 0)
-                    {
-                        foreach(var a in cntrList)
-                        {
-                            cntr = cntr + a.S_CNTR_CODE + ",";
-                        }
-                    }
-                    cntr = cntr.TrimEnd(',');
-                    //鍒涘缓浣滀笟
-                    WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntr, "鐡跺澂");
+                    cntr = cntr + a.S_CNTR_CODE + ",";
                 }
             }
-            else
+            cntr = cntr.TrimEnd(',');
+            return cntr;
+        }
+
+        internal static void PGFDFullIn()
+        {
+            //浜х嚎鍙�锛�鍐滃か鏋楄姖-1鍙风摱鐩栫炕鏂楁満
+            //鐡剁洊缈绘枟鏈哄叡鐢ㄤ竴涓簱鍖猴紝闇�鍖哄垎鍑犵鎯呭喌锛堟敞锛氱幇鍦哄凡纭锛屼笁涓炕鏂楁満涓嶄細鏈変笁绉嶇墿鏂欙級
+            //1銆佸鏋滀笁涓炕鏂楁満鐗╂枡鐩稿悓锛屽垯 鐡剁洊闈炲嵆浜ф弧妗�鏈夌┖璐т綅灏辫ˉ
+            //2銆佸鏋滀笁涓炕鏂楁満鏈変袱绉嶄笉鍚岀殑鐗╂枡锛屽垯 鐡剁洊闈炲嵆浜ф弧妗�鏈夌┖浣嶇殑琛ュ厖 鏀瑰簱鍖烘病鏈夌殑鐗╂枡
+            var db = new SqlHelper<object>().GetInstance();
+            string itemList = "";
+            var bcpWorkList = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("鐡剁洊缈绘枟鏈�) && a.S_UsingNow == "N" && a.S_WorkState == "鎵ц涓�).ToList();
+            if (bcpWorkList.Count > 0)
             {
-                LogHelper.Info("鐡惰儦鍏ュ簱鎺ラ┏ 鏈厤缃�);
+                bcpWorkList.ForEach(a =>
+                {
+                    if (string.IsNullOrEmpty(itemList))
+                    {
+                        itemList = itemList + a.S_ItemCode + ",";
+                    }
+                    else
+                    {
+                        if (!itemList.Contains(a.S_ItemCode))
+                        {
+                            itemList = itemList + a.S_ItemCode + ",";
+                        }
+                    }
+                });
+            }
+            if (!string.IsNullOrEmpty(itemList))
+            {
+                itemList = itemList.TrimEnd(',');
+                List<string> itemCount = itemList.Split(',').ToList();
+                if(itemCount.Count > 0)
+                {
+                    var areaInfo = Settings.areaInfos.Where(b => b.areaName == "鐡剁洊闈炲嵆浜ф弧妗� && b.enable == 1).FirstOrDefault();
+                    if (areaInfo != null)
+                    {
+                        var locInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == areaInfo.areaCode && b.N_CURRENT_NUM == 0 && b.S_LOCK_STATE == "鏃�).First();
+                        if (locInfo != null)
+                        {
+                            if (itemCount.Count == 1)
+                            {
+                                //鍙湁涓�鐗╂枡
+                                //鐢熸垚浠诲姟
+                                Location location = TaskProcess.BCPInOrOut(db, false, "鐡剁洊搴撳尯", itemCount[0]);
+                                if (location != null)
+                                {
+                                    string cntrCode = getCntrCode(db, location);
+                                    //鍒涘缓浣滀笟
+                                    WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃", cntrCode, "鐡剁洊");
+                                }
+                            }
+                            if (itemCount.Count == 2)
+                            {
+                                //涓ょ鐗╂枡
+
+                                //鍒ゆ柇搴撳尯鏄惁鏈夎揣浣嶆暟閲忓ぇ浜�鎴栬�鏈夊叆搴撻攣鐨勶紝濡傛灉鏈夛紝鍒欏垽鏂墿鏂欙紝濡傛灉娌℃湁锛屽垯鐢熸垚绗竴涓墿鏂欑殑浠诲姟
+                                var locInfo2 = db.Queryable<Location>().Where(b => b.S_AREA_CODE == areaInfo.areaCode && (b.N_CURRENT_NUM > 0 || b.S_LOCK_STATE == "鍏ュ簱閿�)).First();
+                                if(locInfo2 != null)
+                                {
+                                    string itemCode = "";
+                                    if(locInfo2.N_CURRENT_NUM > 0)
+                                    {
+                                        var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == locInfo2.S_CODE).First();
+                                        if(cntrInfo != null)
+                                        {
+                                            var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First();
+                                            if(itemInfo != null)
+                                            {
+                                                itemCode = itemInfo.S_ITEM_CODE;
+                                            }
+                                        }
+                                    }
+                                    if(locInfo2.S_LOCK_STATE == "鍏ュ簱閿�)
+                                    {
+                                        var taskInfo = db.Queryable<WMSTask>().Where(b => b.S_END_LOC == locInfo2.S_CODE && b.S_STATE != "瀹屾垚" && b.S_STATE != "鍙栨秷").First();
+                                        if(taskInfo != null)
+                                        {
+                                            string cntrCode = taskInfo.S_CNTR_CODE.Split(',')[0];
+                                            var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrCode).First();
+                                            if (itemInfo != null)
+                                            {
+                                                itemCode = itemInfo.S_ITEM_CODE;
+                                            }
+                                        }
+                                    }
+
+                                    if (itemCode != "")
+                                    {
+                                        itemCode = itemCode == itemCount[0] ? itemCount[1] : itemCount[0];
+                                        Location location = TaskProcess.BCPInOrOut(db, false, "鐡剁洊搴撳尯", itemCode);
+                                        if (location != null)
+                                        {
+                                            string cntrCode = getCntrCode(db, location);
+                                            //鍒涘缓浣滀笟
+                                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃", cntrCode, "鐡剁洊");
+                                        }
+                                    }
+                                }
+                                else
+                                {
+                                    Location location = TaskProcess.BCPInOrOut(db, false, "鐡剁洊搴撳尯", itemCount[0]);
+                                    if (location != null)
+                                    {
+                                        string cntrCode = getCntrCode(db, location);
+                                        //鍒涘缓浣滀笟
+                                        WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃", cntrCode, "鐡剁洊");
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    else
+                    {
+                        LogHelper.Info($"鐡剁洊闈炲嵆浜ф弧妗�鏈厤缃�);
+                    }
+                }
             }
         }
     }
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
index 0dff435..e0aabd2 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
@@ -65,7 +65,7 @@
                                 var endinfo = db.Queryable<Location>().Where(it => it.S_CODE == end.S_CODE).First();
                                 int startLayer = startinfo.N_CURRENT_NUM;
                                 int endlayer = endinfo.N_CURRENT_NUM + 1;
-                                if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� || a.S_OP_DEF_NAME == "鐡剁洊绌烘墭鍏ュ簱")
+                                if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� || a.S_OP_DEF_NAME == "鐡剁洊绌烘墭鍏ュ簱" || a.S_OP_DEF_NAME == "鐡跺澂闈炴�浜цˉ婊℃" || a.S_OP_DEF_NAME == "鐡剁洊闈炴�浜цˉ婊℃")
                                 {
                                     startLayer = 1;
                                     endlayer = 1;
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
index be99608..024f37f 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -514,14 +514,13 @@
             {
                 LogHelper.Info($"鏌ヨ鍒版墽琛屼腑鐨勫伐鍗曪紝宸ュ崟绫诲瀷锛歿workInfo.S_PLineNo}");
                 string startArea = "";
-                string endArea = "";
                 string fullTaskType = "";
                 string emptyTaskType = "";
                 if (workInfo.S_UsingNow == "Y")
                 {
                     LogHelper.Info("鍗充骇鍗崇敤宸ュ崟");
                     //鍗充骇鍗崇敤鍦ㄨ捣鐐逛负绾胯竟
-                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤A" && a.enable == 1).FirstOrDefault();
+                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍗充骇鍗崇敤婊℃" && a.enable == 1).FirstOrDefault();
                     if (bcpInfo != null)
                     {
                         startArea = bcpInfo.areaCode;
@@ -533,7 +532,8 @@
                 {
                     LogHelper.Info("闈炲嵆浜у嵆鐢ㄥ伐鍗�);
                     //闈炲嵆浜у嵆鐢ㄨ捣鐐逛负搴撳尯
-                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
+                    string areaName = plc.deviceName.Split('-')[1].Substring(0, 1) + "鍙风摱鑳氱炕鏂楁満闈炲嵆浜ф弧妗�;
+                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).FirstOrDefault();
                     if (bcpInfo != null)
                     {
                         startArea = bcpInfo.areaCode;
@@ -541,8 +541,6 @@
                     fullTaskType = "缈绘枟鏈哄簱瀛樻弧鎵樹笂绾匡紙鐡跺澂锛�;
                     emptyTaskType = "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡跺澂锛�;
                 }
-
-                endArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂绌烘墭" && a.enable == 1).FirstOrDefault().areaCode;
 
                 if (data.Length == 6)
                 {
@@ -576,16 +574,12 @@
                                     //鍒濆鐘舵�锛屾棤鎵樼洏锛岀洿鎺ヤ笂婊℃墭(闈炲嵆浜у嵆鐢ㄩ渶瑕佹牎楠�濂楄瀹屾垚锛屽嵆浜у嵆鐢ㄧ洿鎺ヤ娇鐢�
                                     if (workInfo.S_UsingNow == "Y")
                                     {
-                                        LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏌ユ壘");
+                                        LogHelper.Info($"鐡惰儦鍗充骇鍗崇敤婊℃ 鏌ユ壘");
                                         startLoca = getFDSXArea(db, workInfo, startArea);
-                                        if (startLoca == null)
-                                        {
-                                            LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏈壘鍒版弧鎵橈紝鍘荤摱鍧嵆浜у嵆鐢˙搴撳尯鏌ユ壘");
-                                            startLoca = TaskProcess.BCPInOrOut(db, false, "鐡跺澂鍗充骇鍗崇敤B", workInfo.S_ItemCode);
-                                        }
                                     }
                                     else
                                     {
+                                        LogHelper.Info($"鐡惰儦闈炲嵆浜у簱鍖�鏌ユ壘");
                                         startLoca = getFDSXArea(db, workInfo, startArea);
                                     }
 
@@ -643,12 +637,11 @@
             {
                 LogHelper.Info($"鏌ヨ鍒版墽琛屼腑鐨勫伐鍗曪紝宸ュ崟绫诲瀷锛歿workInfo.S_PLineNo}");
                 string startArea = "";
-                string endArea = "";
                 string fullTaskType = "";
                 string emptyTaskType = "";
                 LogHelper.Info("闈炲嵆浜у嵆鐢ㄥ伐鍗�);
                 //闈炲嵆浜у嵆鐢ㄨ捣鐐逛负搴撳尯
-                var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
+                var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜ф弧妗� && a.enable == 1).FirstOrDefault();
                 if (bcpInfo != null)
                 {
                     startArea = bcpInfo.areaCode;
@@ -657,7 +650,6 @@
                 fullTaskType = "缈绘枟鏈哄簱瀛樻弧鎵樹笂绾匡紙鐡剁洊锛�;
                 emptyTaskType = "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡剁洊锛�;
 
-                endArea = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊绌烘墭" && a.enable == 1).FirstOrDefault().areaCode;
                 if (data.Length == 6)
                 {
                     if (data.Substring(0, 2) == "11")
@@ -695,9 +687,9 @@
                                 }
                                 else
                                 {
-                                    LogHelper.Info($"鐡剁洊缈绘枟鏈轰笂鏈夌┖鎵樼洏锛岀敓鎴愮┖鎵樹笅绾夸换鍔★紝鐡剁洊缈绘枟鏈虹偣浣嶏細{plc.TN_Location[0]}");
+                                    LogHelper.Info($"鐡剁洊缈绘枟鏈轰笂鏈夌┖鎵樼洏锛岀敓鎴愮┖鎵樹笅绾夸换鍔★紝鐡剁洊缈绘枟鏈虹偣浣嶏細{locCode}");
                                     //鍒涘缓浣滀笟
-                                    WMSHelper.CreateOpTask(plc.TN_Location[0],"", "鍏ュ簱", emptyTaskType, plcLoca.S_CNTR_CODE);
+                                    WMSHelper.CreateOpTask(locCode, "", "鍏ュ簱", emptyTaskType, plcLoca.S_CNTR_CODE);
                                 }
                             }
                         }
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
index 0fb1a31..d46e737 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
@@ -677,10 +677,11 @@
             if (mst.S_TYPE.Contains("婊℃墭涓嬬嚎"))
             {
                 LogHelper.Info($"绌烘墭浠诲姟鐢熸垚澶勭悊锛屼换鍔$被鍨嬶細{mst.S_TYPE}");
-                var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂绌烘墭" && a.enable == 1).First();
+                string areaName = mst.S_TYPE.Contains("搴撳瓨") ? "鐡惰儦闈炲嵆浜х┖妗� : "鐡惰儦鍗充骇绌烘";
+                var areaInfo = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).First();
                 if(areaInfo != null)
                 {
-                    startLoca = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
+                    startLoca = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_ROW).First();
                     if (startLoca != null)
                     {
                         LogHelper.Info("startLoca" + JsonConvert.SerializeObject(startLoca));
@@ -706,19 +707,12 @@
                 LogHelper.Info($"婊℃墭浠诲姟鐢熸垚澶勭悊锛屼换鍔$被鍨嬶細{mst.S_TYPE}");
                 string startArea = "";
                 LinZhiBCPWorkOrder bcpW = null;
-                if (mst.S_TYPE.Contains("鐡跺澂"))
-                {
-                    bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("鍐滃か鏋楄姖-鐡跺澂缈绘枟鏈�) && a.S_WorkState == "鎵ц涓�).First();
-                }
-                else
-                {
-                    bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("鍐滃か鏋楄姖-鐡剁洊缈绘枟鏈�) && a.S_WorkState == "鎵ц涓�).First();
-                }
+                bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_WorkNo == mst.S_WORK_NO && a.S_WorkState == "鎵ц涓�).First();
 
                 if (mst.S_TYPE.Contains("鐡剁洊"))
                 {
                     //鐡剁洊鏃犲嵆浜у嵆鐢ㄥ拰闈炲嵆浜у嵆鐢�-                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
+                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜ф弧妗� && a.enable == 1).FirstOrDefault();
                     if (bcpInfo != null)
                     {
                         startLoca = DeviceProcess.getFDSXArea(db, bcpW, bcpInfo.areaCode);
@@ -728,18 +722,14 @@
                 {
                     if (bcpW.S_UsingNow == "Y")
                     {
-                        LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏌ユ壘");
-                        startArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤A" && a.enable == 1).FirstOrDefault().areaCode;
+                        LogHelper.Info($"鐡惰儦鍗充骇婊℃ 鏌ユ壘");
+                        startArea = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍗充骇婊℃" && a.enable == 1).FirstOrDefault().areaCode;
                         startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea);
-                        if (startLoca == null)
-                        {
-                            LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏈壘鍒版弧鎵橈紝鍘荤摱鍧嵆浜у嵆鐢˙搴撳尯鏌ユ壘");
-                            startLoca = TaskProcess.BCPInOrOut(db, true, "鐡跺澂鍗充骇鍗崇敤B", bcpW.S_ItemCode);
-                        }
                     }
                     else
                     {
-                        startArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault().areaCode;
+                        string areaName = bcpW.S_PLineNo.Split('-')[1].Substring(0, 1) + "鍙风摱鑳氱炕鏂楁満闈炲嵆浜ф弧妗�;
+                        startArea = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).FirstOrDefault().areaCode;
                         startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea);
                     }
                 }
@@ -1520,10 +1510,8 @@
                 }
                 if(result == null)
                 {
-                    //result = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemCode);
                     result = getJBLoc(db, result);
                 }
-
             }
             else
             {
@@ -1566,13 +1554,13 @@
         internal static Location BCPEmptyOut(SqlSugarClient db, string taskName)
         {
             Location result = null;
-            //缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡剁洊锛�-            string endAreaName = taskName.Contains("鐡剁洊") ? "鐡剁洊绌烘墭" : "鐡跺澂绌烘墭";
+
+            string endAreaName = taskName.Contains("鐡剁洊") ? "鐡剁洊闈炲嵆浜х┖妗� : taskName.Contains("搴撳瓨") ? "鐡惰儦闈炲嵆浜х┖妗� : "鐡惰儦鍗充骇绌烘";
             var areaInfo = Settings.areaInfos.Where(a => a.areaName == endAreaName && a.enable == 1).FirstOrDefault();
-            if(areaInfo != null)
+            if (areaInfo != null)
             {
-                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
-                if(locInfo != null)
+                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_ROW).First();
+                if (locInfo != null)
                 {
                     result = locInfo;
                 }
@@ -1581,187 +1569,9 @@
             {
                 LogHelper.Info($"{endAreaName}鏈厤缃�);
             }
+            
             return result;
         }
-
-        /// <summary>
-        /// 鍗婃垚鍝佺Щ搴�-        /// </summary>
-        /// <param name="action">true - 宸ュ崟寮�惎 false - 宸ュ崟鍏抽棴</param>
-        /// <param name="machine">璁惧</param>
-        internal static void BCPYiKu(bool action, string machine)
-        {
-            var db = new SqlHelper<object>().GetInstance();
-            Location startLoc = null;
-            Location endLoc = null;
-            if (action)
-            {
-                if(machine == "鐡跺澂缈绘枟鏈�)
-                {
-                    //鐡跺澂缈绘枟鏈�-                    //寮�惎锛屽垽鏂伐鍗曠被鍨嬶紝鏍规嵁宸ュ崟绫诲瀷琛ュ厖瀵瑰簲鐨勫簱鍖�鍗充骇鍗崇敤涓嶈ˉ鍏�-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
-                    if (areaInfo != null)
-                    {
-                        var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "鍐滃か鏋楄姖-鐡舵壒缈绘枟鏈� && a.S_WorkState == "鎵ц涓�).First();
-                        if (workInfo.S_UsingNow == "N")
-                        {
-                            startLoc = TaskProcess.BCPInOrOut(db, false, "鐡跺澂搴撳尯", workInfo.S_ItemCode);
-                            endLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
-                        }
-                    }
-                    else
-                    {
-                        LogHelper.Info("鐡跺澂闈炲嵆浜у嵆鐢ㄦ湭閰嶇疆");
-                    }
-                        
-                }
-                if (machine == "鐡跺澂娉ㄥ鏈�)
-                {
-                    //寮�惎锛屾煡璇�鐡跺澂绌烘墭 鏄惁绌烘墭鏁伴噺澶т簬3鎵橈紝濡傛灉涓嶅ぇ浜庯紝鍒欒ˉ绌烘墭
-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂娉ㄥ鏈虹┖鎵� && a.enable == 1).FirstOrDefault();
-                    if(areaInfo != null)
-                    {
-                        var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).ToList();
-                        if(locList.Count > 2)
-                        {
-                            LogHelper.Info("鐡跺澂绌烘墭 琛ョ┖鎵�);
-                            startLoc = TaskProcess.BCPInOrOut(db, false, "鐡跺澂搴撳尯","");
-                            endLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
-                        }
-                    }
-                    else
-                    {
-                        LogHelper.Info("鐡跺澂娉ㄥ鏈虹┖鎵樻湭閰嶇疆");
-                    }
-
-                }
-                if (machine == "鐡剁洊缈绘枟鏈�)
-                {
-                    //寮�惎锛屾煡璇�鐡剁洊闈炴�浜ф�鐢�鐗╂枡鏄惁婊★紝涓嶆弧鍒欒ˉ鍏呯墿鏂�-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
-                    if (areaInfo != null)
-                    {
-                        var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First();
-                        if(locInfo != null)
-                        {
-                            LogHelper.Info("鐡剁洊闈炲嵆浜у嵆鐢�琛ユ弧鎵�);
-                            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "鍐滃か鏋楄姖-鐡剁洊缈绘枟鏈� && a.S_WorkState == "鎵ц涓�).First();
-                            startLoc = TaskProcess.BCPInOrOut(db, false, "鐡剁洊搴撳尯", workInfo.S_ItemCode);
-                            endLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
-                        }
-                    }
-                    else
-                    {
-                        LogHelper.Info("鐡剁洊闈炲嵆浜у嵆鐢ㄦ湭閰嶇疆");
-                    }
-                }
-            }
-            else
-            {
-                if (machine == "鐡跺澂缈绘枟鏈�)
-                {
-                    //鍏抽棴锛屾煡璇�鐡跺澂闈炲嵆浜у嵆鐢�鐡跺澂鍗充骇鍗崇敤A 鐡跺澂鍗充骇鍗崇敤B 鏄惁鏈夌墿鏂欙紝鏈夊垯鍏ュ簱
-                    var areaList = Settings.areaInfos.Where(a => (a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� || a.areaName == "鐡跺澂鍗充骇鍗崇敤A") && a.enable == 1).ToList();
-                    if (areaList.Count > 0)
-                    {
-                        foreach(var a in areaList)
-                        {
-                            startLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.areaCode && b.N_CURRENT_NUM > 0 && b.S_LOCK_STATE == "鏃�).Includes(b => b.LocCntrRel).First();
-                            if (startLoc != null) break;
-                        }
-                    }
-                    if (startLoc == null)
-                    {
-                        var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤B" && a.enable == 1).FirstOrDefault();
-                        if(areaInfo != null)
-                        {
-                            var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.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(locInfo.Count > 0)
-                            {
-                                foreach(var a in locInfo)
-                                {
-                                    int row = a.N_ROW;
-                                    var lockInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == areaInfo.areaCode && b.N_ROW == a.N_ROW && (b.S_LOCK_STATE == "鍏ュ簱閿� || b.S_LOCK_STATE == "鍑哄簱閿�)).First();
-                                    if(lockInfo == null)
-                                    {
-                                        startLoc = a;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    if(startLoc != null)
-                    {
-                        if (startLoc.LocCntrRel != null)
-                        {
-                            var itemInfo = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == startLoc.LocCntrRel.S_CNTR_CODE).First();
-                            if (itemInfo != null)
-                            {
-                                endLoc = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemInfo.S_ITEM_CODE);
-                            }
-                        }
-                    }
-                }
-                if (machine == "鐡跺澂娉ㄥ鏈�)
-                {
-                    //鍏抽棴锛屾煡璇�鐡跺澂绌烘墭 鏄惁鏈夌┖鎵橈紝鏈夊垯鍏ュ簱
-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂娉ㄥ鏈虹┖鎵� && a.enable == 1).FirstOrDefault();
-                    if (areaInfo != null)
-                    {
-                        startLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
-                        if(startLoc != null)
-                        {
-                            endLoc = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", "");
-                        }
-                    }
-                }
-                if (machine == "鐡剁洊缈绘枟鏈�)
-                {
-                    //鍏抽棴锛�1銆佹煡璇�鐡剁洊绌烘墭 鏄惁杩樻湁鎵樼洏锛屾湁鍒欏叆搴� 2銆佹煡璇㈢摱鐩栭潪鍗充骇鍗崇敤 鏄惁鏈夌墿鏂欙紝 鏈夊垯鍏ュ簱
-                    //鍏抽棴锛屾煡璇�鐡跺澂绌烘墭 鏄惁鏈夌┖鎵橈紝鏈夊垯鍏ュ簱
-
-                    //鏌ヨ绌烘墭搴撳尯
-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊绌烘墭" && a.enable == 1).FirstOrDefault();
-                    if (areaInfo != null)
-                    {
-                        startLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
-                        if (startLoc != null)
-                        {
-                            endLoc = TaskProcess.BCPInOrOut(db, true, "鐡剁洊搴撳尯", "");
-                        }
-                    }
-
-                    //鏌ヨ婊℃墭搴撳尯
-                    if(startLoc == null)
-                    {
-                        areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
-                        if (areaInfo != null)
-                        {
-                            startLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
-                            if (startLoc != null)
-                            {
-                                if(startLoc.LocCntrRel != null)
-                                {
-                                    var itemInfo = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == startLoc.LocCntrRel.S_CNTR_CODE).First();
-                                    if(itemInfo != null)
-                                    {
-                                        endLoc = TaskProcess.BCPInOrOut(db, true, "鐡剁洊搴撳尯", itemInfo.S_ITEM_CODE);
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-
-            if (startLoc != null && endLoc != null)
-            {
-                WMSHelper.CreateOpTask(startLoc.S_CODE, endLoc.S_CODE, "鍏ュ簱", "鍗婃垚鍝佺Щ搴�, startLoc.LocCntrRel.S_CNTR_CODE);
-            }
-        }
-
-
 
         /// <summary>
         /// FuLeWebPost
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs
index 805e93e..c41c4e2 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs
@@ -339,7 +339,7 @@
                     location.N_CURRENT_NUM = 0;
                 }
 
-                if (type == "鎺ラ┏浣嶅叆搴� || type == "鐡剁洊绌烘墭鍏ュ簱")
+                if (type == "鎺ラ┏浣嶅叆搴� || type == "鐡剁洊绌烘墭鍏ュ簱" || type == "鐡跺澂闈炴�浜цˉ婊℃" || type == "鐡剁洊闈炴�浜цˉ婊℃")
                 {
                     location.N_CURRENT_NUM = 0;
                 }
@@ -382,7 +382,7 @@
                     }
                 });
                 location.N_CURRENT_NUM = lcrList.Count + count;
-                if(type == "鎺ラ┏浣嶅叆搴� || type == "鐡剁洊绌烘墭鍏ュ簱")
+                if(type == "鎺ラ┏浣嶅叆搴� || type == "鐡剁洊绌烘墭鍏ュ簱" || type == "鐡跺澂闈炴�浜цˉ婊℃" || type == "鐡剁洊闈炴�浜цˉ婊℃")
                 {
                     location.N_CURRENT_NUM = location.N_CAPACITY;
                 }

--
Gitblit v1.9.1