From 7fda4aeb36beda46d767a78082573692e7b85651 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期二, 15 七月 2025 17:23:05 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs |    1 
 HH.WCS.Mobox3.NongFuLinZhi/Program.cs               |    8 +-
 HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs          |   29 ++++---
 .vs/农夫林芝/v17/DocumentLayout.json                    |    4 -
 .vs/VSWorkspaceState.json                           |    2 
 .vs/农夫林芝/v17/DocumentLayout.backup.json             |   65 ++++++++++++++++
 HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs   |   85 ++++++++++++++++++--
 HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs          |   10 ++
 .vs/农夫林芝/v17/.wsuo                                  |    0 
 HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs         |    2 
 HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs         |   18 +++-
 11 files changed, 184 insertions(+), 40 deletions(-)

diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json
index 6738466..2c4f182 100644
--- a/.vs/VSWorkspaceState.json
+++ b/.vs/VSWorkspaceState.json
@@ -2,6 +2,6 @@
   "ExpandedNodes": [
     ""
   ],
-  "SelectedNode": "\\C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u519C\u592B\u6797\u829D",
+  "SelectedNode": "\\HH.WCS.Mobox3.NFLZ.sln",
   "PreviewInSolutionExplorer": false
 }
\ No newline at end of file
diff --git "a/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/.wsuo" "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/.wsuo"
index dd169e9..60a9dc1 100644
--- "a/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/.wsuo"
+++ "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/.wsuo"
Binary files differ
diff --git "a/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.backup.json" "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.backup.json"
new file mode 100644
index 0000000..0059f7e
--- /dev/null
+++ "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.backup.json"
@@ -0,0 +1,65 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u519C\u592B\u6797\u829D\\",
+  "Documents": [],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 12,
+          "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/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.json" "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.json"
index 0059f7e..b424425 100644
--- "a/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.json"
+++ "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.json"
@@ -34,10 +34,6 @@
             {
               "$type": "Bookmark",
               "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
-            },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
             }
           ]
         },
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/Program.cs b/HH.WCS.Mobox3.NongFuLinZhi/Program.cs
index 376ee0d..0d2da28 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/Program.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/Program.cs
@@ -98,10 +98,10 @@
 
                 //tasks.Add(GetTask(Monitor.CheckDevice));
                 tasks.Add(GetTask(Monitor.BottleBlankTransportation)); //鎺ラ┏浣嶅叆搴�-                tasks.Add(GetTask(Monitor.PPFDFullIn)); //鐡跺澂缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭
-                tasks.Add(GetTask(Monitor.PGFDFullIn)); //鐡剁洊缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭
-                tasks.Add(GetTask(Monitor.PGFDFullInJC)); //鐡剁洊缈绘枟鏈烘�浜ф弧妗嗗尯琛ユ弧鎵�绌烘墭鍖哄煙琛ョ┖鎵�-                tasks.Add(GetTask(Monitor.PPFDFullInEmpty)); //鐡跺澂娉ㄥ鏈洪潪鎬ヤ骇绌烘鍖鸿ˉ绌烘墭
+                tasks.Add(GetTask(Monitor.PPFDFullIn)); //鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃鍖鸿ˉ婊℃墭
+                tasks.Add(GetTask(Monitor.PGFDFullIn)); //鐡剁洊缈绘枟鏈洪潪鍗充骇婊℃鍖鸿ˉ婊℃墭
+                tasks.Add(GetTask(Monitor.PGFDFullInJC)); //鐡剁洊缈绘枟鏈哄嵆浜ф弧妗嗗尯琛ユ弧鎵�绌烘墭鍖哄煙琛ョ┖鎵�+                tasks.Add(GetTask(Monitor.PPFDFullInEmpty)); //鐡跺澂娉ㄥ鏈洪潪鍗充骇绌烘鍖鸿ˉ绌烘墭
                 tasks.Add(GetTask(Monitor.PGXBZZY)); //鐡剁洊灏忓寘瑁呯洊杞繍
 
 
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs
index d8371e8..962184d 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs
@@ -721,6 +721,7 @@
         internal static ReturnResult JBIn(JBInModel model)
         {
             ReturnResult result = new ReturnResult() { ResultCode = -1 };
+            var db = new SqlHelper<object>().GetInstance();
             string cntrCode = Guid.NewGuid().ToString("N");
             string batch = "";
             if (model.S_ITEM_TYPE == "灏忓寘瑁呯洊")
@@ -740,12 +741,21 @@
                 batch = "澶у寘瑁呯洊";
             }
             //鍒涘缓浣滀笟
-            LogHelper.Info($"JBIn:{model.S_LOC_CODE},{cntrCode},{"鎸囧畾搴撳尯-" + model.S_END_AREA}");
-            if(WMSHelper.CreateOpTask(model.S_LOC_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntrCode, "鎸囧畾搴撳尯-" + model.S_END_AREA))
+            var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE && a.S_LOCK_STATE == "鏃�).First();
+            if(locInfo != null)
             {
-                TaskProcess.BindLocCntr(model.S_LOC_CODE, cntrCode, model.S_ITEM_CODE, batch);
-                result.ResultCode = 0;
+                LogHelper.Info($"JBIn:{model.S_LOC_CODE},{cntrCode},{"鎸囧畾搴撳尯-" + model.S_END_AREA}");
+                if (WMSHelper.CreateOpTask(model.S_LOC_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntrCode, "鎸囧畾搴撳尯-" + model.S_END_AREA))
+                {
+                    TaskProcess.BindLocCntr(model.S_LOC_CODE, cntrCode, model.S_ITEM_CODE, batch);
+                    result.ResultCode = 0;
+                }
             }
+            else
+            {
+                result.ResultMsg = $"璇ョ偣浣嶄笉瀛樺湪鎴栬�鏈夐攣锛岃揣浣嶇紪鐮侊細{model.S_LOC_CODE}";
+            }
+            
 
             return result;
         }
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
index 76b0b40..df8a2a7 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
@@ -107,7 +107,7 @@
         }
 
         /// <summary>
-        /// 鐡跺澂缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭
+        /// 鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃鍖鸿ˉ婊℃墭
         /// </summary>
         internal static void PPFDFullIn()
         {
@@ -132,7 +132,7 @@
                             {
                                 string cntrCode = getCntrCode(db,location);
                                 //鍒涘缓浣滀笟
-                                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炴�浜цˉ婊℃", cntrCode, "鐡跺澂");
+                                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炲嵆浜цˉ婊℃", cntrCode, "鐡跺澂");
                             }
                         }
                     }
@@ -206,7 +206,7 @@
                                 {
                                     string cntrCode = getCntrCode(db, location);
                                     //鍒涘缓浣滀笟
-                                    WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊");
+                                    WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炲嵆浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊");
                                 }
                             }
                             if (itemCount.Count == 2)
@@ -252,7 +252,7 @@
                                         {
                                             string cntrCode = getCntrCode(db, location);
                                             //鍒涘缓浣滀笟
-                                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊");
+                                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炲嵆浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊");
                                         }
                                     }
                                 }
@@ -263,7 +263,7 @@
                                     {
                                         string cntrCode = getCntrCode(db, location);
                                         //鍒涘缓浣滀笟
-                                        WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊");
+                                        WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炲嵆浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊");
                                     }
                                 }
                             }
@@ -293,7 +293,8 @@
                 var LocList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0).ToList();
                 if(LocList.Count <= 1)
                 {
-                    var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鐡跺澂闈炴�浜цˉ绌烘" && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷").First();
+                    LogHelper.Info($"鐡跺澂闈炲嵆浜цˉ绌烘 {JsonConvert.SerializeObject(LocList)}");
+                    var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鐡跺澂闈炲嵆浜цˉ绌烘" && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷").First();
                     if(taskInfo == null)
                     {
                         //闇�浠庡簱鍖鸿ˉ鍏呯┖鎵�@@ -303,14 +304,16 @@
                         {
                             string cntrCode = getCntrCode(db, location);
                             //鍒涘缓浣滀笟
-                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炴�浜цˉ绌烘", cntrCode, "鐡跺澂");
+                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炲嵆浜цˉ绌烘", cntrCode, "鐡跺澂");
                         }
                     }
                 }
+
                 LocList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY).ToList();
                 if (LocList.Count > 2)
                 {
-                    var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鐡跺澂闈炴�浜х┖妗嗗叆搴� && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷" && a.S_B_STATE != "鍗歌揣瀹屾垚" && a.S_B_STATE != "寮�鍗歌揣" && a.S_B_STATE != "鍙栬揣瀹屾垚").First();
+                    LogHelper.Info($"鐡跺澂闈炲嵆浜х┖鎵樺叆搴�{JsonConvert.SerializeObject(LocList)}");
+                    var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鐡跺澂闈炲嵆浜х┖妗嗗叆搴� && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷" && a.S_B_STATE != "鍗歌揣瀹屾垚" && a.S_B_STATE != "寮�鍗歌揣" && a.S_B_STATE != "鍙栬揣瀹屾垚").First();
                     if(taskInfo == null)
                     {
                         //闇�灏嗙┖鎵樿浆杩愬埌搴撳尯
@@ -321,7 +324,7 @@
                                 //鐢熸垚浠诲姟
                                 string cntrCode = getCntrCode(db, a);
                                 //鍒涘缓浣滀笟
-                                WMSHelper.CreateOpTask(a.S_CODE, "", "鍏ュ簱", "鐡跺澂闈炴�浜х┖妗嗗叆搴�, cntrCode, "鐡跺澂");
+                                WMSHelper.CreateOpTask(a.S_CODE, "", "鍏ュ簱", "鐡跺澂闈炲嵆浜х┖妗嗗叆搴�, cntrCode, "鐡跺澂");
                                 break;
                             }
                         }
@@ -345,7 +348,7 @@
             //            {
             //                string cntrCode = getCntrCode(db, location);
             //                //鍒涘缓浣滀笟
-            //                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炴�浜цˉ绌烘", cntrCode, "鐡跺澂");
+            //                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炲嵆浜цˉ绌烘", cntrCode, "鐡跺澂");
             //            }
             //        }
             //    }
@@ -376,7 +379,7 @@
                         {
                             //鍒涘缓浣滀笟
                             string cntrCode = getCntrCode(db, startLoca);
-                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo.S_CODE, "鍑哄簱", "鐡跺澂鎬ヤ骇琛ユ弧妗�, cntrCode, "");
+                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo.S_CODE, "鍑哄簱", "鐡跺澂鍗充骇琛ユ弧妗�, cntrCode, "");
                         }
                     }
                 }
@@ -393,7 +396,7 @@
                         {
                             //鍒涘缓浣滀笟
                             string cntrCode = getCntrCode(db, startLoca);
-                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo[0].S_CODE, "鍑哄簱", "鐡跺澂鎬ヤ骇琛ョ┖妗�, cntrCode, "");
+                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo[0].S_CODE, "鍑哄簱", "鐡跺澂鍗充骇琛ョ┖妗�, cntrCode, "");
                         }
                     }
                 }
@@ -455,7 +458,7 @@
                         if (startLoca != null)
                         {
                             string cntrCode = getCntrCode(db, startLoca);
-                            WMSHelper.CreateOpTask(startLoca.S_CODE, endLoca.S_CODE, "鍑哄簱", "鐡剁洊闈炴�浜цˉ婊℃灏忓寘瑁�, cntrCode, "");
+                            WMSHelper.CreateOpTask(startLoca.S_CODE, endLoca.S_CODE, "鍑哄簱", "鐡剁洊闈炲嵆浜цˉ婊℃灏忓寘瑁�, cntrCode, "");
                         }
                     }
                 }
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs
index 8b859c8..001b6ba 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs
@@ -1,4 +1,5 @@
-锘縰sing HH.WCS.Mobox3.NFLZ.dispatch;
+锘縰sing HH.WCS.Mobox3.NFLZ.api;
+using HH.WCS.Mobox3.NFLZ.dispatch;
 using HH.WCS.Mobox3.NFLZ.process;
 using HH.WCS.Mobox3.NFLZ.util;
 using HH.WCS.Mobox3.NFLZ.wms;
@@ -85,7 +86,12 @@
                             if (AlterControlSwitch01 == "1") TaskProcess.GeneralInterFaceFunc(TN_Task, model.state.ToString(), model.forklift_no);
                         }
                     }
-                    else {
+                    else if(model.state == 8)
+                    {
+                        TaskProcess.cancelTask(TN_Task);
+                    }
+                    else 
+                    {
                         LogHelper.Info("瀹夊叏璇锋眰浜や簰");
                         //瀹夊叏璇锋眰绛�                         TaskProcess.OperateReq(model.task_no, model.state, model.forklift_no, model.ext_data);
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
index cd18687..a4067b6 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -723,6 +723,7 @@
                             {
                                 LogHelper.Info($"getFDSXArea:鏌ヨ鍒扮墿鏂欑紪鐮侊細{itemInfo.S_ITEM_CODE}");
                                 LogHelper.Info($"getFDSXArea:鏌ヨ鍒扮墿鏂欐壒娆★細{itemInfo.S_BATCH_NO}");
+                                if (workInfo.S_PLineNo.Contains("鐡跺澂")) workInfo.S_ITEM_TYPE = "";
                                 if (itemInfo.S_ITEM_CODE + itemInfo.S_BATCH_NO == workInfo.S_ItemCode + workInfo.S_ITEM_TYPE)
                                 {
                                     result = a;
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
index 4ec4f6b..5659dd1 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
@@ -11,6 +11,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Security.Cryptography;
+using System.Threading.Tasks;
 using System.Xml.Linq;
 using static HH.WCS.Mobox3.NFLZ.api.OtherModel;
 using static HH.WCS.Mobox3.NFLZ.dispatch.NDCApi;
@@ -65,7 +66,7 @@
                 //璧风偣缁堢偣瑙i攣
                 LocationHelper.UnLockLoc(mst.S_START_LOC);
                 LocationHelper.UnLockLoc(mst.S_END_LOC);
-
+                
             }
 
         }
@@ -677,7 +678,7 @@
         /// <exception cref="NotImplementedException"></exception>
         public static void EmptyTask(WCSTask mst)
         {
-            //鐡剁洊娉ㄥ鏈虹┖鎵樹笂绾匡紝鑻ユ�浜ф�鐢ㄥ簱鍖烘病鏈夊浣欑殑绌烘墭锛屽垯鍦ㄩ潪鎬ヤ骇鎬ョ敤绌烘墭鍖烘嬁绌烘墭
+            //鐡剁洊娉ㄥ鏈虹┖鎵樹笂绾匡紝鑻ュ嵆浜ф�鐢ㄥ簱鍖烘病鏈夊浣欑殑绌烘墭锛屽垯鍦ㄩ潪鍗充骇鎬ョ敤绌烘墭鍖烘嬁绌烘墭
             var db = new SqlHelper<object>().GetInstance();
             Location startLoca = null;
 
@@ -1105,7 +1106,7 @@
                         Extend2 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_END_LOC).First().S_AGV_SITE;
                         if (mst.N_START_LAYER > 1)
                         {
-                            if(mst.S_TYPE != "鐡跺澂闈炴�浜х┖妗嗗叆搴� && mst.S_TYPE != "鐡跺澂鎺ラ┏浣嶅叆搴� && mst.S_TYPE != "鐡剁洊绌烘墭鍏ュ簱")
+                            if(mst.S_TYPE != "鐡跺澂闈炲嵆浜х┖妗嗗叆搴� && mst.S_TYPE != "鐡跺澂鎺ラ┏浣嶅叆搴� && mst.S_TYPE != "鐡剁洊绌烘墭鍏ュ簱")
                             {
                                 Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE;
                             }
@@ -1115,7 +1116,7 @@
                         {
                             Extend2 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_END_LOC && a.N_LAYER == mst.N_END_LAYER).First().S_AGV_SITE;
                         }
-                        if(mst.S_TYPE == "鐡跺澂闈炴�浜цˉ婊℃" || mst.S_TYPE == "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁� || mst.S_TYPE == "鐡跺澂闈炴�浜цˉ绌烘" || mst.S_TYPE == "鐡剁洊闈炴�浜цˉ绌烘" || mst.S_TYPE == "娉ㄥ鍗充骇婊℃墭涓嬬嚎锛堢摱鍧級")
+                        if(mst.S_TYPE == "鐡跺澂闈炲嵆浜цˉ婊℃" || mst.S_TYPE == "鐡剁洊闈炲嵆浜цˉ婊℃澶у寘瑁� || mst.S_TYPE == "鐡跺澂闈炲嵆浜цˉ绌烘" || mst.S_TYPE == "鐡剁洊闈炲嵆浜цˉ绌烘" || mst.S_TYPE == "娉ㄥ鍗充骇婊℃墭涓嬬嚎锛堢摱鍧級")
                         {
                             Extend2 = Settings.dXSites.Where(it => it.loc == mst.S_END_LOC).First().site.ToString();
                         }
@@ -1358,7 +1359,7 @@
                                                     else
                                                     {
                                                         //鏌ヨ鍚庨潰褰撳墠璐т綅鍚庝竴涓�-                                                        result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW == a.N_ROW && b.N_COL > a.N_COL && b.S_LOCK_STATE == "鏃�).OrderBy(b => b.N_COL).First();
+                                                        result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW == a.N_ROW && b.N_COL > a.N_COL && a.N_CURRENT_NUM < a.N_CAPACITY && b.S_LOCK_STATE == "鏃�).OrderBy(b => b.N_COL).First();
                                                     }
                                                     if (result != null)
                                                     {
@@ -1571,7 +1572,7 @@
             LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱被鍨嬶細{taskName}锛岀墿鏂欑紪鐮侊細{itemCode}");
             if (taskName.Contains("鍗充骇"))
             {
-                //娉ㄥ鏈烘�浜у嵆鐢ㄤ笅绾匡紝棣栧厛涓嬬嚎鍒板嵆浜у嵆鐢ㄦ弧妗嗙嚎杈癸紝婊$湺绾胯竟婊′簡锛屼笅鍒板嵆浜у嵆鐢ㄦ弧妗嗙紦瀛樺尯锛屾弧妗嗙紦瀛樺尯婊′簡锛屼笅鍒板叆搴撴帴椹冲爢鍙犱綅
+                //娉ㄥ鏈哄嵆浜у嵆鐢ㄤ笅绾匡紝棣栧厛涓嬬嚎鍒板嵆浜у嵆鐢ㄦ弧妗嗙嚎杈癸紝婊$湺绾胯竟婊′簡锛屼笅鍒板嵆浜у嵆鐢ㄦ弧妗嗙紦瀛樺尯锛屾弧妗嗙紦瀛樺尯婊′簡锛屼笅鍒板叆搴撴帴椹冲爢鍙犱綅
                 var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃" && a.enable == 1).FirstOrDefault();
                 if(areaInfo != null)
                 {
@@ -1942,11 +1943,16 @@
                         var Con = db.Queryable<Container>().Where(a => a.S_CODE == cntrCode).First();
                         if(Con == null)
                         {
+                            int detallCount = 0;
+                            if (!string.IsNullOrEmpty(itemCode))
+                            {
+                                detallCount = 1;
+                            }
                             if(db.Insertable<Container>(new Container
                             {
                                 S_CODE = cntrCode,
                                 N_TYPE = 1,
-                                N_DETAIL_COUNT = 1
+                                N_DETAIL_COUNT = detallCount
                             }).ExecuteCommand() > 0)
                             {
                                 LogHelper.Info($"瀹瑰櫒琛ㄧ粦瀹氭垚鍔燂紝鎵樼洏鍙凤細{cntrCode}");
@@ -2485,11 +2491,20 @@
                 {
                     foreach (var a in locList)
                     {
-                        var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.S_ROW == a.S_ROW && b.S_LOCK_STATE == "鏃�).First();
-                        if(rowInfo != null && a.S_LOCK_STATE == "鏃�)
+                        var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_CODE).First();
+                        if(cntrInfo != null)
                         {
-                            result = a;
-                            break;
+                            var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First();
+                            if(itemInfo == null)
+                            {
+                                var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.S_ROW == a.S_ROW && b.S_LOCK_STATE == "鏃�).First();
+                                if (rowInfo != null && a.S_LOCK_STATE == "鏃�)
+                                {
+                                    result = a;
+                                    break;
+                                }
+                            }
+
                         }
                     }
                 }
@@ -2501,5 +2516,53 @@
 
             return result;
         }
+
+        /// <summary>
+        /// 鍙栨秷浠诲姟
+        /// </summary>
+        /// <param name="tN_Task"></param>
+        /// <exception cref="NotImplementedException"></exception>
+        internal static void cancelTask(WCSTask TN_Task)
+        {
+            if(!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
+            {
+                //鍙栨秷浠诲姟
+                WCSHelper.UpdateStatus(TN_Task.S_CODE, 4);
+                if (TN_Task.S_TYPE == "鎺ラ┏浣嶅叆搴�)
+                {
+                    new SqlHelper<object>().GetInstance().Deleteable<CntrItemRel>().Where(a => TN_Task.S_CNTR_CODE.Contains(a.S_CNTR_CODE)).ExecuteCommand();
+                    new SqlHelper<object>().GetInstance().Deleteable<LocCntrRel>().Where(a => TN_Task.S_CNTR_CODE.Contains(a.S_CNTR_CODE)).ExecuteCommand();
+                }
+            }
+            else
+            {
+                WCSHelper.UpdateStatus(TN_Task.S_CODE, 3);
+            }
+
+            var op = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE);
+            if (op != null)
+            {
+                if (op.N_B_STATE == 0)
+                {
+                    //绛夊緟鐩存帴淇敼鐘舵�涓哄彇娑�+                    op.N_B_STATE = 3;
+                }
+                else if (op.N_B_STATE == 1)
+                {
+                    if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
+                    {
+                        op.N_B_STATE = 2;
+                    }
+                    else
+                    {
+                        op.N_B_STATE = 3;
+                    }
+                }
+                
+                WMSHelper.UpdateTaskState(op);
+            }
+            NDCApi.CancelOrder(TN_Task.S_CODE.Trim());
+            OperateStatus(TN_Task, 7);
+        }
     }
 }
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
index d8ef902..05454f0 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
@@ -703,7 +703,7 @@
                 else
                 {
                     LogHelper.Info($"鍏ュ簱浠诲姟 璁$畻缁堢偣锛屼换鍔$被鍨嬶細{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 == "鐡跺澂鎺ラ┏浣嶅叆搴�)
+                    if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� || a.S_OP_DEF_NAME == "鐡剁洊绌烘墭鍏ュ簱" || a.S_OP_DEF_NAME == "鐡跺澂闈炲嵆浜х┖妗嗗叆搴� || a.S_OP_DEF_NAME == "鐡跺澂鎺ラ┏浣嶅叆搴�)
                     {
                         string itemCode = "";
                         var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_START_LOC).First();

--
Gitblit v1.9.1