From eef16e0bb8ddb518c6726f04d4ac43dfd3feca2a Mon Sep 17 00:00:00 2001
From: zxx <Zxx@HanInfo>
Date: 星期四, 03 七月 2025 10:28:08 +0800
Subject: [PATCH] 大件

---
 /dev/null                                                  |    0 
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs  |  944 +---------------------------------------------
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/HH.WCS.XiaoMi.csproj    |    1 
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/smallMaterial.cs |    2 
 .vs/HH.WCS.XiaoMi/v17/DocumentLayout.json                  |  203 ++++++----
 5 files changed, 162 insertions(+), 988 deletions(-)

diff --git a/.vs/HH.WCS.XiaoMi/FileContentIndex/855388f0-bbaf-4a4c-b341-1dde2e2c1271.vsidx b/.vs/HH.WCS.XiaoMi/FileContentIndex/855388f0-bbaf-4a4c-b341-1dde2e2c1271.vsidx
deleted file mode 100644
index 87dd48b..0000000
--- a/.vs/HH.WCS.XiaoMi/FileContentIndex/855388f0-bbaf-4a4c-b341-1dde2e2c1271.vsidx
+++ /dev/null
Binary files differ
diff --git a/.vs/HH.WCS.XiaoMi/FileContentIndex/a75299f4-6f65-44c8-86aa-d636a52af79f.vsidx b/.vs/HH.WCS.XiaoMi/FileContentIndex/a75299f4-6f65-44c8-86aa-d636a52af79f.vsidx
deleted file mode 100644
index ddbe53c..0000000
--- a/.vs/HH.WCS.XiaoMi/FileContentIndex/a75299f4-6f65-44c8-86aa-d636a52af79f.vsidx
+++ /dev/null
Binary files differ
diff --git a/.vs/HH.WCS.XiaoMi/v17/DocumentLayout.json b/.vs/HH.WCS.XiaoMi/v17/DocumentLayout.json
index b910071..376c2c4 100644
--- a/.vs/HH.WCS.XiaoMi/v17/DocumentLayout.json
+++ b/.vs/HH.WCS.XiaoMi/v17/DocumentLayout.json
@@ -1,30 +1,42 @@
 {
   "Version": 1,
-  "WorkspaceRootPath": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\",
+  "WorkspaceRootPath": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|d:\\\u6C49\u548C\u667A\u80FD\\git-mobox3\\\u5C0F\u7C73\u7535\u9A71\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\dispatch\\gzrobot.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\dispatch\\gzrobot.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|d:\\work\\\u6C49\u548C\u667A\u80FD\\002-xiaomidianquche\\hh-0159_xiaomidianquche\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|d:\\\u6C49\u548C\u667A\u80FD\\git-mobox3\\\u5C0F\u7C73\u7535\u9A71\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\api\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\api\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|d:\\\u6C49\u548C\u667A\u80FD\\git-mobox3\\\u5C0F\u7C73\u7535\u9A71\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|d:\\\u6C49\u548C\u667A\u80FD\\git-mobox3\\\u5C0F\u7C73\u7535\u9A71\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\api\\moboxcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\api\\moboxcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|d:\\\u6C49\u548C\u667A\u80FD\\git-mobox3\\\u5C0F\u7C73\u7535\u9A71\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\dispatch\\rcshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|d:\\work\\\u6C49\u548C\u667A\u80FD\\002-xiaomidianquche\\hh-0159_xiaomidianquche\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\dispatch\\rcshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\dispatch\\rcshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|d:\\\u6C49\u548C\u667A\u80FD\\git-mobox3\\\u5C0F\u7C73\u7535\u9A71\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\models\\loccntrrel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\models\\loccntrrel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\wms\\wcshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\wms\\wcshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\models\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\models\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\models\\locframerel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\models\\locframerel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\core\\wmscore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\core\\wmscore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\models\\bigmaterial.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EBE15A59-A43A-43BE-8B4B-A6EC42E11111}|HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\HH.WCS.XiaoMi.csproj|solutionrelative:hh.wcs.mobox3\\hh.wcs.mobox3.xiaomi\\models\\bigmaterial.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -34,92 +46,121 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 0,
+          "SelectedChildIndex": 9,
           "Children": [
             {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
+            },
+            {
               "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "GZRobot.cs",
-              "DocumentMoniker": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\GZRobot.cs",
-              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\GZRobot.cs",
-              "ToolTip": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\GZRobot.cs",
-              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\GZRobot.cs",
-              "ViewState": "AgIAAMkAAAAAAAAAAAAAANYAAAAMAAAAAAAAAA==",
+              "DocumentIndex": 2,
+              "Title": "RcsHelper.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\RcsHelper.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\RcsHelper.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\RcsHelper.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\RcsHelper.cs",
+              "ViewState": "AgIAAB8AAAAAAAAAAAAIwC8AAAAJAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-01T07:30:42.404Z",
+              "WhenOpened": "2025-07-02T07:58:47.335Z",
               "EditorCaption": ""
-            },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
-            },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
             },
             {
               "$type": "Document",
               "DocumentIndex": 1,
-              "Title": "AgvController.cs",
-              "DocumentMoniker": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\AgvController.cs",
-              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\AgvController.cs",
-              "ToolTip": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\AgvController.cs",
-              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\AgvController.cs",
-              "ViewState": "AgIAADEAAAAAAAAAAAAIwEYAAAAfAAAAAAAAAA==",
+              "Title": "WmsController.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\WmsController.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\WmsController.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\WmsController.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\WmsController.cs",
+              "ViewState": "AgIAABcAAAAAAAAAAAAmwCcAAAA7AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-01T07:22:24.577Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "RcsHelper.cs",
-              "DocumentMoniker": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\RcsHelper.cs",
-              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\RcsHelper.cs",
-              "ToolTip": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\RcsHelper.cs",
-              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\dispatch\\RcsHelper.cs",
-              "ViewState": "AgIAAAUAAAAAAAAAAAAuwDAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-01T06:29:18.739Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "MoboxController.cs",
-              "DocumentMoniker": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\MoboxController.cs",
-              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\MoboxController.cs",
-              "ToolTip": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\MoboxController.cs",
-              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\MoboxController.cs",
-              "ViewState": "AgIAACoAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-01T06:22:35.427Z",
+              "WhenOpened": "2025-07-01T07:30:55.256Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 5,
-              "Title": "Program.cs",
-              "DocumentMoniker": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\Program.cs",
-              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\Program.cs",
-              "ToolTip": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\Program.cs",
-              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\Program.cs",
-              "ViewState": "AgIAAEwAAAAAAAAAAAAIwFAAAAAAAAAAAAAAAA==",
+              "Title": "WCSTask.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\WCSTask.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\WCSTask.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\WCSTask.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\WCSTask.cs",
+              "ViewState": "AgIAACYAAAAAAAAAAAAcwDIAAAARAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-01T06:19:59.189Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-07-01T02:13:02.571Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "WmsController.cs",
-              "DocumentMoniker": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\WmsController.cs",
-              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\WmsController.cs",
-              "ToolTip": "D:\\\u6C49\u548C\u667A\u80FD\\Git-Mobox3\\\u5C0F\u7C73\u7535\u9A71\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\WmsController.cs",
-              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\api\\WmsController.cs",
-              "ViewState": "AgIAABMAAAAAAAAAAAAAAB0AAAAnAAAAAAAAAA==",
+              "DocumentIndex": 4,
+              "Title": "WCSHelper.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\wms\\WCSHelper.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\wms\\WCSHelper.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\wms\\WCSHelper.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\wms\\WCSHelper.cs",
+              "ViewState": "AgIAAHMAAAAAAAAAAAAqwHUAAAAdAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-01T02:23:56.445Z",
+              "WhenOpened": "2025-07-01T02:01:38.699Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "LocFrameRel.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\LocFrameRel.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\LocFrameRel.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\LocFrameRel.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\LocFrameRel.cs",
+              "ViewState": "AgIAAAsAAAAAAAAAAAAAwBYAAAAxAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-30T09:08:04.703Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "LocCntrRel.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\LocCntrRel.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\LocCntrRel.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\LocCntrRel.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\LocCntrRel.cs",
+              "ViewState": "AgIAABAAAAAAAAAAAAAxwBsAAAAwAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-30T08:29:09.066Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "WMSCore.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\core\\WMSCore.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\core\\WMSCore.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\core\\WMSCore.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\core\\WMSCore.cs",
+              "ViewState": "AgIAAG0BAAAAAAAAAAAmwHUBAAAfAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-30T05:15:00.854Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "bigMaterial.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\bigMaterial.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\bigMaterial.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\bigMaterial.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\models\\bigMaterial.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAtAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-30T01:48:12.435Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "TaskProcess.cs",
+              "DocumentMoniker": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\process\\TaskProcess.cs",
+              "RelativeDocumentMoniker": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\process\\TaskProcess.cs",
+              "ToolTip": "D:\\work\\\u6C49\u548C\u667A\u80FD\\002-XiaoMiDianQuChe\\HH-0159_XiaoMiDianQuChe\\HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\process\\TaskProcess.cs",
+              "RelativeToolTip": "HH.WCS.Mobox3\\HH.WCS.Mobox3.XiaoMi\\process\\TaskProcess.cs",
+              "ViewState": "AgIAABwHAAAAAAAAAAAAACwHAABaAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-30T01:30:52.325Z",
               "EditorCaption": ""
             }
           ]
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/HH.WCS.XiaoMi.csproj b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/HH.WCS.XiaoMi.csproj
index eea54cf..f0ac3dc 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/HH.WCS.XiaoMi.csproj
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/HH.WCS.XiaoMi.csproj
@@ -217,6 +217,7 @@
     <Compile Include="dispatch\HanAo.cs" />
     <Compile Include="dispatch\NDC.cs" />
     <Compile Include="core\Monitor.cs" />
+    <Compile Include="dispatch\RcsHelper.cs" />
     <Compile Include="models\LocFrameRel.cs" />
     <Compile Include="models\smallMaterial.cs" />
     <Compile Include="models\bigMaterial.cs" />
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/smallMaterial.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/smallMaterial.cs
index f77d984..9285520 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/smallMaterial.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/smallMaterial.cs
@@ -21,7 +21,9 @@
     public class parameters
     {
         public string src { get; set; }
+        public string src_area { get; set; }
         public string dst { get; set; }
+        public string dst_area { get; set; }
         public string sku { get; set; }
         public string BatchNo { get; set; }
         public int num { get; set; }
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
index 97b00c5..ee45e99 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
@@ -714,6 +714,7 @@
                         result = list.OrderBy(s => s.N_ROW).ThenBy(x => x.N_COL).FirstOrDefault();
 
                     }
+                    
                 }
 
             }
@@ -875,897 +876,6 @@
             return result;
         }
 
-        #region 宸ㄧ煶浠g爜
-        /// <summary>
-        /// 甯歌閫佹缂撳瓨鍖鸿揣浣�abc涓変釜鍖�涓ゅ眰
-        /// </summary>
-        /// <param name="startloc">璧风偣璐т綅</param>
-        /// <param name="area">搴撳尯</param>
-        /// <returns></returns>
-        public static Location InCgWorkTransport(string startloc, string area)
-        {
-            Location result = null;
-            var db = new SqlHelper<object>().GetInstance();
-            try
-            {
-                //A,B,C3涓揣鏋朵笂锛岃繖涓鏈変紭鍏堢骇浜�CX03,04浼樺厛閫佸埌A鍖鸿揣鏋讹紝CX01,CX02浼樺厛閫佸埌B,C璐ф灦
-                var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "閫佹缂撳瓨鍖�).FirstOrDefault();
-
-                var alllist = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == reservoirs.areaCode).ToList();
-                // 浠庨厤缃幏鍙栦紭鍏堢骇瑙勫垯
-                var mapping = Settings.PriorityLocs.FirstOrDefault(m => m.Location == startloc);
-                LogHelper.Info($"閰嶇疆鐨勪紭鍏堢骇瑙勫垯{JsonConvert.SerializeObject(mapping)}");
-                if (mapping == null)
-                {
-                    LogHelper.Info($"鏈壘鍒颁骇绾縶startloc}鐨勪紭鍏堢骇閰嶇疆");
-                    return null;
-                }
-                var primaryAreas = mapping.PrimaryArea.Split(',');
-                var secondaryAreas = mapping.SecondaryArea.Split(',');
-                LogHelper.Info($"浼樺厛锛歿JsonConvert.SerializeObject(primaryAreas)}娆¢�锛歿JsonConvert.SerializeObject(secondaryAreas)}");
-                // 绛涢�鏈攣涓旀湁绌虹殑璐т綅
-                var availablePrimaryLocations = FilterAvailableLocations(alllist, primaryAreas);
-                //浼樺厛
-                result = availablePrimaryLocations.OrderBy(l => l.N_COL).ThenBy(l => l.N_LAYER).FirstOrDefault();
-
-                // 娆¢�
-                if (result == null)
-                {
-                    var availableSecondaryLocations = FilterAvailableLocations(alllist, secondaryAreas);
-                    result = availableSecondaryLocations.OrderBy(l => l.N_COL).ThenBy(l => l.N_LAYER).FirstOrDefault();
-                }
-
-                return result;
-
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("InWorkTransport:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("InWorkTransport:" + ex.Message, ex);
-            }
-            return result;
-        }
-        //绛涢�鍙敤浣嶇疆
-        private static List<Location> FilterAvailableLocations(List<Location> locations, string[] targetAreas)
-        {
-            return locations
-                .Where(l => targetAreas.Any(area => l.S_CODE.Contains(area)))
-                .Where(l => l.N_LOCK_STATE == 0 && l.C_ENABLE == "Y" && l.N_CURRENT_NUM < l.N_CAPACITY)
-                .ToList();
-        }
-
-        /// <summary>
-        /// 绱у噾鍨嬪叆搴撹揣浣� 绱ф�閫佹鍖�绌烘墭缂撳瓨涓��浜屽尯
-        /// </summary>
-        /// <param name="area">搴撳尯</param>
-        /// <returns></returns>
-        public static Location CompactWorkTransport(string area)
-        {
-            Location result = null;
-            var db = new SqlHelper<object>().GetInstance();
-            try
-            {
-                //鏌ヨ姣忔帓鏈�悗涓�垪鏈夋墭鐩樼殑璐т綅  鏍规嵁琛屽垎鍖�鍐嶆壘姣忎竴琛岀殑鏈�悗涓�垪鏈夎揣鐨勮揣浣�-                var list = db.Queryable<Location>().
-                    Where(a => a.N_CURRENT_NUM > 0 && a.S_AREA_CODE.Trim() == area).PartitionBy(a => a.N_ROW)
-                    .OrderByDescending(a => a.N_COL).Take(1).ToList();
-                if (list.Count > 0)
-                {
-                    for (int i = 0; i < list.Count; i++)
-                    {
-                        LogHelper.Info($"鏈夋墭鐩樻帓鍙穥list[i].N_ROW}锛屽簱鍖簕area}");
-
-                        //鍏ヨ揣浣嶅悗涓�綅璐т綅
-                        result = db.Queryable<Location>().OrderBy(a => a.N_COL)
-                            .Where(a => a.S_AREA_CODE.Trim() == area && a.N_ROW == list[i].N_ROW
-                            && a.N_COL > list[i].N_COL).First();
-                        if (result != null && result.N_LOCK_STATE == 0 && result.C_ENABLE == "Y")
-                        {
-                            return result;
-                        }
-                    }
-                }
-                //娌℃壘鍒拌鏄庡簱鍖烘槸绌虹殑 鍏ラ噷闈�-                else
-                {
-                    result = db.Queryable<Location>().
-                    Where(a => a.S_AREA_CODE.Trim() == area && a.N_LOCK_STATE == 0 && a.C_ENABLE == "Y" && a.N_CURRENT_NUM == 0)
-                    .OrderBy(a => a.N_COL).OrderBy(a => a.N_ROW).First();
-                }
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("InWorkTransport:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("InWorkTransport:" + ex.Message, ex);
-            }
-            return result;
-        }
-
-        
-
-        /// <summary>
-        /// 鐗╂枡涓嬬嚎/閫佹缂撳瓨鍖�>甯歌閫佹鍖�-        /// </summary>
-        /// <param name="model.START_LOC">璧风偣璐т綅</param>
-        /// <param name="model.END_AREA">缁堢偣璐у尯</param>
-        /// <param name="model.S_ITEM_CODE">鐗╂枡锛堥�濉級</param>
-        /// <returns></returns>
-        internal static Results materialOffline(GetSubmitCheck model)
-        {
-            var result = new Results() { Code = "0", Message = "涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛�, Data = null };
-            var db = new SqlHelper<Location>().GetInstance();
-            try
-            {
-                //鏍¢獙璧风偣璐т綅鏄惁瀛樺湪/閿佷綇
-                var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.START_LOC).First();
-                if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y")
-                {
-                    return new Results { Code = "1", Message = $"{model.START_LOC}搴撲綅宸茶閿佸畾!", Data = null };
-                }
-                //璁$畻缁堢偣璐т綅
-                if (string.IsNullOrEmpty(model.END_AREA))
-                {
-                    return new Results { Code = "1", Message = "鍑哄簱鏈紶缁堢偣搴撳尯!", Data = null };
-                }
-                //濡傛灉鏄揣鎬ラ�妫�尯 绱у噾鍨�-                var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "绱ф�閫佹鍖�).FirstOrDefault();
-                //濡傛灉鏄�妫�紦瀛樺尯
-                var reservoirs2 = Settings.ReservoirAreas.Where(s => s.areaName == "閫佹缂撳瓨鍖�).FirstOrDefault();
-                Location OutLoc = null;
-                if (model.END_AREA.Equals(reservoirs.areaCode))
-                {
-                    LogHelper.Info($"绱ф�閫佹鍖�=================");
-                    OutLoc = CompactWorkTransport(model.END_AREA);
-                }
-                else if (model.END_AREA.Equals(reservoirs2.areaCode))
-                {
-                    LogHelper.Info($"閫佹缂撳瓨鍖�=================");
-                    OutLoc = InCgWorkTransport(model.START_LOC, model.END_AREA);
-                }
-                else
-                {
-                    LogHelper.Info($"鍏朵粬==================");
-                    OutLoc = InWorkTransport(model.END_AREA);
-                }
-
-                //娌′紶鐗╂枡鐨勮瘽榛樿涓�釜
-                string itemCode = null;
-                string wlName = null;
-                if (!string.IsNullOrEmpty(model.S_ITEM_CODE))
-                {
-                    itemCode = model.S_ITEM_CODE;
-                    wlName = "甯冨嵎";
-                    //wlName = db.Queryable<TN_Material>().Where(b => b.S_ITEM_CODE == model.S_ITEM_CODE).First().S_ITEM_NAME;
-                }
-                //鍒涘缓鎵樼洏璐т綅缁戝畾鍏崇郴
-                string trayCode = ContainerHelper.GenerateCntrNo();
-                //缁戝畾璧风偣璐т綅(浜х嚎)鍜岀墿鏂�     涓嶄紶鐨勮瘽杩欓噷娌℃湁缁戠墿鏂欐墭鐩樿〃 鍙粦浜嗘墭鐩樿揣浣嶈〃
-                ContainerHelper.BindLocCntrs(model.START_LOC, trayCode, itemCode, wlName);
-
-                var reservoirs1 = Settings.ReservoirAreas.Where(s => s.areaName == "甯歌閫佹鍖�).FirstOrDefault();
-                //鍒涘缓浠诲姟
-                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{model.START_LOC}缁堢偣:{OutLoc.S_CODE}", OutLoc.S_CODE == reservoirs1.areaCode ? "甯歌閫佹" : "鐗╂枡涓嬬嚎");
-                var res = TaskProcess.CreateTransport(model.START_LOC, OutLoc.S_CODE, OutLoc.S_CODE == reservoirs1.areaCode ? "甯歌閫佹" : "鐗╂枡涓嬬嚎", trayCode, 1, 1);
-
-                if (!res)
-                {
-                    return new Results { Code = "1", Message = "涓嬬嚎浠诲姟鐢熸垚澶辫触!", Data = null };
-
-                }
-                return result;
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("materialOffline:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("materialOffline:" + ex.Message, ex);
-                throw;
-            }
-        }
-        /// <summary>
-        /// 鍛煎彨绌烘墭
-        /// </summary>
-        /// <param name="model.START_LOC">璧风偣绫诲瀷(鎷嗘墭鏈�</param>
-        /// <param name="model.END_LOC">缁堢偣璐т綅(浜х嚎)</param>
-        /// <returns></returns>
-        internal static Results CallEmptyTray(GetSubmitCheck model)
-        {
-            var result = new Results() { Code = "0", Message = "鍛煎彨绌烘墭浠诲姟鐢熸垚鎴愬姛锛�, Data = null };
-            var db = new SqlHelper<Location>().GetInstance();
-            try
-            {
-                //蹇呭~鍙傛暟鏍¢獙
-                if (string.IsNullOrEmpty(model.START_LOC))
-                {
-                    return new Results { Code = "1", Message = "鍛煎彨绌烘墭鏈紶璧风偣搴撲綅!", Data = null };
-                }
-                if (string.IsNullOrEmpty(model.END_LOC))
-                {
-                    return new Results { Code = "1", Message = "鍛煎彨绌烘墭鏈紶缁堢偣搴撲綅!", Data = null };
-                }
-                //鏍¢獙缁堢偣璐т綅鏄惁瀛樺湪/閿佸畾
-                var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.END_LOC).First();
-                if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y")
-                {
-                    return new Results { Code = "1", Message = $"{model.END_LOC}搴撲綅宸茶閿佸畾!", Data = null };
-                }
-                ////浠庨厤缃牴鎹媶鎵樻満绫诲瀷鎵惧埌鍑哄彛璐т綅
-                //var reservoirs = Settings.linePlcInfos.Where(s => s.code == model.S_TYPE).FirstOrDefault();
-                //string OutLocStr = reservoirs.outLoca;
-
-                //濡傛灉缁堢偣鍜屼骇绾夸笅绾挎槸鍚屼竴涓揣浣�缁堢偣涔熶笉缁戞墭鐩�-                string trayCode = ContainerHelper.GenerateCntrNo();
-                //鍒涘缓浠诲姟
-                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{model.START_LOC}缁堢偣:{model.END_LOC}", "鍛煎彨绌烘墭");
-                var res = TaskProcess.CreateTransport(model.START_LOC, model.END_LOC, "鍛煎彨绌烘墭", trayCode, 1, 1);
-                if (!res)
-                {
-                    return new Results { Code = "1", Message = "鍛煎彨绌烘墭浠诲姟鐢熸垚澶辫触!", Data = null };
-
-                }
-                return result;
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("CallEmptyTray:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("CallEmptyTray:" + ex.Message, ex);
-                throw;
-            }
-        }
-        /// <summary>
-        /// 閫佹  甯歌閫佹鍖�->绱ф�閫佹鍖�-        /// </summary>
-        /// <param name="model.START_LOC">璧风偣璐т綅锛堥�濉級</param>
-        /// <param name="model.S_ITEM_CODE">鐗╂枡锛堥�濉級</param>
-        /// <returns></returns>
-        internal static Results submitCheck(GetSubmitCheck model)
-        {
-            var result = new Results() { Code = "0", Message = "閫佹浠诲姟鐢熸垚鎴愬姛锛�, Data = null };
-            var db = new SqlHelper<Location>().GetInstance();
-            try
-            {
-                string startloc = "";
-                //鐗╂枡涓嶄负绌哄垯鏍规嵁鐗╂枡鎵捐捣鐐硅揣浣�-                if (!string.IsNullOrEmpty(model.S_ITEM_CODE))
-                {
-                    //鏍规嵁鐗╂枡鎵捐揣浣�-                    var cgreservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "甯歌閫佹鍖�).FirstOrDefault();
-                    startloc = getLocByMaterial(model.S_ITEM_CODE, cgreservoirs.areaCode).S_CODE;
-                    if (startloc == null)
-                    {
-                        return new Results { Code = "1", Message = $"{model.S_ITEM_CODE}鏈壘鍒拌鐗╂枡!", Data = null };
-                    }
-                }
-                //濡傛灉浼犱簡璧风偣
-                if (!string.IsNullOrEmpty(model.START_LOC))
-                {
-                    var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.START_LOC).First();
-                    if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y")
-                    {
-                        return new Results { Code = "1", Message = $"{model.START_LOC}搴撲綅宸茶閿佸畾!", Data = null };
-                    }
-                    startloc = loc.S_CODE;
-                }
-                //璁$畻绱ф�閫佹鍖虹粓鐐硅揣浣�-                var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "绱ф�閫佹鍖�).FirstOrDefault();
-                Location OutLoc = TaskProcess.CompactWorkTransport(reservoirs.areaCode);
-                if (OutLoc == null)
-                {
-                    return new Results { Code = "1", Message = $"缁堢偣搴撳尯绱ф�閫佹鍖烘湭鎵惧埌绌鸿揣浣�", Data = null };
-                }
-                //鍒涘缓閫佹浠诲姟
-                var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.START_LOC).First();
-
-                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startloc}缁堢偣:{OutLoc.S_CODE}", "閫佹");
-                var res = TaskProcess.CreateTransport(startloc, OutLoc.S_CODE, "閫佹", locCntrRel.S_CNTR_CODE, 1, 1);
-                if (!res)
-                {
-                    return new Results { Code = "1", Message = "閫佹浠诲姟鐢熸垚澶辫触!", Data = null };
-
-                }
-                return result;
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("submitCheck:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("submitCheck:" + ex.Message, ex);
-                throw;
-            }
-        }
-
-        /// <summary>
-        /// 鏍规嵁鐗╂枡鎵捐揣浣� 鏍规嵁CntrItemDetail鏃堕棿 鍏堣繘鍏堝嚭  杩炶〃鏌ュ垽鏂揣浣嶆湁娌℃湁閿�-        /// </summary>
-        /// <param name="itemCode">鐗╂枡</param>
-        /// <returns></returns>
-        public static Location getLocByMaterial(string itemCode, string areaCode)
-        {
-            Location result = null;
-            try
-            {
-                var db = new SqlHelper<object>().GetInstance();
-                //涓よ〃鑱旀煡鏌ュ嚭鏈夎鐗╂枡鐨勮揣浣嶇紪鍙� 锛堢幇鍦烘病鏈夌墿鏂欒〃锛�-                var locCntrs = db.Queryable<LocCntrRel>().LeftJoin<CntrItemDetail>((p, m) => p.S_CNTR_CODE == m.S_CNTR_CODE)
-                .Where((p, m) => m.S_ITEM_CODE == itemCode)
-                .OrderBy((p, m) => p.T_CREATE)  //鎸夊垱寤烘椂闂撮『搴�-                .Select((p, m) => p.S_LOC_CODE) // 閫夋嫨鎵樼洏鐗╂枡琛ㄧ殑鏁版嵁
-                .ToList();
-                LogHelper.Info($"鏈夌墿鏂檣itemCode}鐨勮揣浣嶇紪鍙穥JsonConvert.SerializeObject(locCntrs)}");
-                //鎵惧父瑙勯�妫�尯鍐呭惈鏈夋煡鍑虹墿鏂欒揣浣嶇殑璐т綅
-                var locList = db.Queryable<Location>()
-                    .Where(p => p.S_AREA_CODE == areaCode && p.N_LOCK_STATE == 0 && p.C_ENABLE == "Y")
-                    .Where(s => locCntrs.Contains(s.S_CODE.Trim()))
-                    .ToList();
-
-                if (!locList.Any())
-                {
-                    return null;
-                }
-                result = locList.FirstOrDefault();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("getLocByMaterial:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("getLocByMaterial:" + ex.Message, ex);
-            }
-            return result;
-        }
-
-        //瀛樻憚鍍忓ご璋冪敤鎺ュ彛绌烘弧鐘舵�   璐т綅锛岀┖婊$姸鎬�-        private static string monitorStatus = null;
-        /// <summary>
-        /// 鎽勫儚澶寸洃娴嬫帴鍙�  
-        /// </summary>
-        /// <param name="models.PointCode">鐩戞祴璐т綅</param>
-        /// <param name="models.PointStatus">鐩戞祴绌烘弧鐘舵�0绌洪棽1鍗犵敤3寮傚父</param>
-        /// <returns></returns>
-        internal static Results UpdateFullStatus(List<CameraMonitor> models)
-        {
-            var result = new Results() { Code = "0", Message = "鎿嶄綔鎴愬姛", Data = null };
-            var db = new SqlHelper<object>().GetInstance();
-            //鏍¢獙涓庡唴瀛樻槸鍚︿竴鑷�-            if (monitorStatus != null)
-            {
-                try
-                {
-                    //string杞垚list
-                    var jsonList = JsonConvert.DeserializeObject<List<CameraMonitor>>(monitorStatus);
-                    //鎵句袱涓狶ist鐨勪氦闆�-                    var intersection = jsonList.Where(j => models.Any(m =>
-                        m.PointCode == j.PointCode && m.PointStatus == j.PointStatus)).ToList();
-                    LogHelper.Info($"鎽勫儚澶翠笌涓婃璋冪敤涓�嚧鏁版嵁锛歿JsonConvert.SerializeObject(intersection)}");
-                    foreach (var model in intersection)
-                    {
-                        //鎵惧埌璇ョ偣浣嶇殑搴撳尯
-                        var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.PointCode).First();
-                        //娌¢攣鍐嶇户缁蛋
-                        if (loc.N_LOCK_STATE == 0 && loc.C_ENABLE == "Y" && loc != null)
-                        {
-                            var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "閫佹鍏ュ簱鍖�).FirstOrDefault();
-                            //濡傛灉鏄�妫�叆搴撳尯
-                            if (reservoirs.areaCode.Equals(loc.S_AREA_CODE))
-                            {
-                                var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.PointCode).First();
-                                var container = new Container();
-                                if (locCntrRel == null)
-                                {
-                                    //绗竴娆¤嚜宸辩粦瀹氫竴涓墭鐩�-                                    string trayCode = ContainerHelper.GenerateCntrNo();
-                                    ContainerHelper.BindLocCntrs(model.PointCode, trayCode, null, null);
-                                    container = db.Queryable<Container>().Where(a => a.S_CODE == trayCode).First();
-                                    container.C_FULL = "2";
-                                }
-                                else
-                                {
-                                    //鏌ユ暟鎹簱绌烘弧鐘舵� 璺熺紦瀛樹笉涓�牱鍒欐洿鏂�-                                    //鎵惧埌杩欎釜璐т綅鐨勫鍣�绌烘弧鐘舵�C_FULL鏀规垚2婊� 0 -- 绌�1 -- 鏈夎揣 2 -- 婊�-                                    container = db.Queryable<Container>().Where(a => a.S_CODE == locCntrRel.S_CNTR_CODE).First();
-                                    if (container.C_FULL != model.PointStatus.ToString())
-                                    {
-                                        container.C_FULL = "2";
-                                    }
-                                }
-                                var res = db.Updateable(container).UpdateColumns(it => it.C_FULL).ExecuteCommand() > 0;
-                                if (res)
-                                {
-                                    LogHelper.Info($"淇敼{model.PointCode}璐т綅绌烘弧鐘舵�鎴愬姛", "鎽勫儚澶寸洃娴�);
-                                }
-                                else
-                                {
-                                    LogHelper.Info($"淇敼{model.PointCode}璐т綅绌烘弧鐘舵�澶辫触", "鎽勫儚澶寸洃娴�);
-                                }
-                            }
-                            else
-                            {
-                                //濡傛灉鏄┖鎵樼紦瀛樺尯  鍒ゆ柇鎷嗘墭鏈烘槸鍚︽湁绌轰綅 绌烘墭缂撳瓨鍖烘弧浜嗕笖鎷嗘墭鏈哄叆鍙f湁绌哄垯鍒涘缓浠诲姟
-                                var reservoirs1 = Settings.ReservoirAreas.Where(s => s.areaName == "3min绌烘墭鍖�).FirstOrDefault();
-                                var reservoirs2 = Settings.ReservoirAreas.Where(s => s.areaName == "6min绌烘墭鍖�).FirstOrDefault();
-                                if (loc.S_AREA_CODE.Equals(reservoirs1.areaCode) || loc.S_AREA_CODE.Equals(reservoirs2.areaCode))//涓夊绌烘墭
-                                {
-                                    ProcessEmptyTrayAreas(db, loc, reservoirs1.areaCode, reservoirs2.areaCode);
-                                }
-                            }
-                        }
-                        else
-                        {
-                            LogHelper.Info($"{model.PointCode}璐т綅浠诲姟宸茬粡鐢熸垚", "鎽勫儚澶寸洃娴�);
-                        }
-
-                    }
-                }
-                catch (Exception ex)
-                {
-                    Console.WriteLine("UpdateFullStatus:" + ex.Message + ex.StackTrace);
-                    LogHelper.Error("UpdateFullStatus:" + ex.Message, ex);
-                    throw;
-                }
-            }
-            //list杞瑂tring 瀛樺埌鍐呭瓨
-            monitorStatus = JsonConvert.SerializeObject(models);
-
-            return result;
-        }
-        //鎽勫儚澶寸洃娴嬬┖鎵樼紦瀛樺尯
-        private static void ProcessEmptyTrayAreas(SqlSugar.ISqlSugarClient db, Location loc, string areaCode1, string areaCode2)
-        {
-            var plcDeviceTable = S7Helper.plcDeviceTables;
-            if (plcDeviceTable != null)
-            {
-                string endLoc = null;
-                bool request = false;
-                if (loc.S_AREA_CODE.Equals(areaCode1))
-                {
-                    request = plcDeviceTable.requestPut1;
-                    endLoc = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault().inLoca;
-                }
-                else if (loc.S_AREA_CODE.Equals(areaCode2))//鍏绌烘墭
-                {
-                    request = plcDeviceTable.requestPut2;
-                    endLoc = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault().inLoca;
-                }
-                //鍒ゆ柇鏄惁鍏佽鏀炬
-                if (request)
-                {
-                    //鍒涘缓浠诲姟 浠庣┖鎵樼紦瀛樺尯鍒版媶鎵樻満
-                    var list = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == loc.S_AREA_CODE
-                    && a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.C_ENABLE == "Y").OrderByDescending(a => a.N_ROW)
-                    .OrderByDescending(a => a.N_COL).First();
-                    var startLoc = list.S_CODE;
-
-                    string trayCode = ContainerHelper.GenerateCntrNo();
-
-                    LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc}缁堢偣:{endLoc}", "鎷嗘墭");
-                    var res = TaskProcess.CreateTransport(startLoc, endLoc, "鎷嗘墭", trayCode, 1, 1);
-                    if (res)
-                    {
-                        LogHelper.Info($"璧风偣:{startLoc}缁堢偣:{endLoc}浠诲姟鍒涘缓鎴愬姛", "鎷嗘墭");
-                    }
-                    else
-                    {
-                        LogHelper.Info($"璧风偣:{startLoc}缁堢偣:{endLoc}浠诲姟鍒涘缓澶辫触", "鎷嗘墭");
-                    }
-                }
-            }
-            else
-            {
-                LogHelper.Info($"鏈鍙栧埌鎷嗘墭鏈轰俊鍙�, "鎷嗘墭");
-
-            }
-
-        }
-        /// <summary>
-        /// 鎶芥涓诲姩鍛煎彨    璧风偣锛氶�妫�紦瀛樺尯
-        /// </summary>
-        /// <param name="model.S_ITEM_CODE">鐗╂枡</param>
-        /// <param name="model.END_LOC">缁堢偣璐т綅</param>
-        /// <returns></returns>
-        internal static Results activeCall(GetSubmitCheck model)
-        {
-            var result = new Results() { Code = "0", Message = "鎶芥涓诲姩鍛煎彨浠诲姟鐢熸垚鎴愬姛锛�, Data = null };
-            var db = new SqlHelper<Location>().GetInstance();
-            try
-            {
-                //鏍规嵁鐗╂枡鎵炬煇搴撳尯鐨勮揣浣�-                var cgreservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "閫佹缂撳瓨鍖�).FirstOrDefault();
-                var startloc = getLocByMaterial(model.S_ITEM_CODE, cgreservoirs.areaCode);
-                if (startloc == null)
-                {
-                    return new Results { Code = "1", Message = $"鏈壘鍒板寘鍚墿鏂檣model.S_ITEM_CODE}鐨勮揣浣�, Data = null };
-                }
-                //缁堢偣
-                var endloc = db.Queryable<Location>().Where(a => a.S_CODE == model.END_LOC).First();
-                if (endloc == null || endloc.N_LOCK_STATE != 0 || endloc.C_ENABLE != "Y")
-                {
-                    return new Results { Code = "1", Message = $"{model.END_LOC}搴撲綅宸茶閿佸畾!", Data = null };
-                }
-                //鍒涘缓浠诲姟
-                var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startloc.S_CODE).First();
-
-                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startloc.S_CODE}缁堢偣:{endloc.S_CODE}", "鎶芥涓诲姩鍛煎彨");
-                var res = TaskProcess.CreateTransport(startloc.S_CODE, endloc.S_CODE, "鎶芥涓诲姩鍛煎彨", locCntrRel.S_CNTR_CODE, 1, 1);
-                if (!res)
-                {
-                    return new Results { Code = "1", Message = "鎶芥涓诲姩鍛煎彨浠诲姟鐢熸垚澶辫触!", Data = null };
-
-                }
-                return result;
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("submitCheck:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("submitCheck:" + ex.Message, ex);
-                throw;
-            }
-        }
-        /// <summary>
-        /// 涓诲姩鐗╂枡缁戝畾
-        /// </summary>
-        /// <param name="model.S_ITEM_CODE">鐗╂枡缂栫爜(閫夊~)</param>
-        /// <param name="model.BIND_LOC">缁戝畾璐т綅</param>
-        /// <returns></returns>
-        internal static Results bindMaterial(GetSubmitCheck model)
-        {
-            var result = new Results() { Code = "0", Message = "鐗╂枡缁戝畾鎴愬姛锛�, Data = null };
-            var db = new SqlHelper<object>().GetInstance();
-            try
-            {
-                var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.BIND_LOC).First();
-                if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y")
-                {
-                    return new Results { Code = "1", Message = $"缁戝畾璐т綅涓嶅瓨鍦ㄦ垨宸茶閿�, Data = null };
-
-                }
-                string cntrStr = ContainerHelper.GenerateCntrNo();
-                var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.BIND_LOC).First();
-                if (locCntrRel != null)
-                {
-                    cntrStr = locCntrRel.S_CNTR_CODE;
-                }
-                var res = ContainerHelper.BindLocCntrs(model.BIND_LOC, cntrStr, model.S_ITEM_CODE, "甯冨嵎");
-                if (!res)
-                {
-                    return new Results { Code = "1", Message = $"鐗╂枡{model.S_ITEM_CODE}璐т綅{model.BIND_LOC}缁戝畾澶辫触", Data = null };
-                }
-                loc.N_CURRENT_NUM++;
-                var res2 = db.Updateable(loc).UpdateColumns(it => it.N_CURRENT_NUM).ExecuteCommand() > 0;
-                if (!res2)
-                {
-                    return new Results { Code = "1", Message = $"璐т綅{model.BIND_LOC}褰撳墠鏁伴噺鑷澶辫触", Data = null };
-                }
-                return result;
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("bindMaterial:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("bindMaterial:" + ex.Message, ex);
-                throw;
-            }
-        }
-        /// <summary>
-        /// 鏁存帓鐗╂枡缁戝畾
-        /// </summary>
-        /// <param name="bondLoc">缁戝畾璐т綅</param>
-        /// <returns></returns>
-        internal static Results multBindMaterial(string bondLoc)
-        {
-            var result = new Results() { Code = "0", Message = "鏁存帓鐗╂枡缁戝畾鎴愬姛锛�, Data = null };
-            var db = new SqlHelper<object>().GetInstance();
-            try
-            {
-                var location = db.Queryable<Location>().Where(a => a.S_CODE == bondLoc).First();
-                //鏌ュ嚭杩欎竴鎺掔殑璐т綅
-                var loclist = db.Queryable<Location>()
-                    .Where(a => a.S_AREA_CODE == location.S_AREA_CODE && a.N_ROW == location.N_ROW).ToList();
-                foreach (var loc in loclist)
-                {
-                    //娌¢攣鐨勪笖娌¤揣鐨勬墠缁�-                    if (loc.N_LOCK_STATE == 0 && loc.N_CURRENT_NUM < loc.N_CAPACITY)
-                    {
-
-
-                    }
-
-                }
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("multBindMaterial:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("multBindMaterial:" + ex.Message, ex);
-                throw;
-            }
-
-
-            return result;
-        }
-        /// <summary>
-        /// 鎸夐挳鐩掕皟鐢ㄤ笅绾�-        /// </summary>
-        /// <param name="startLoc">璧风偣璐т綅</param>
-        /// <param name="endArea">缁堢偣璐у尯</param>
-        /// <returns></returns>
-        internal static bool tcpOffline(string startLoc, string endArea)
-        {
-            var db = new SqlHelper<Location>().GetInstance();
-
-            LogHelper.Info($"tcpOffline=====鍙傛暟:璧风偣璐т綅{startLoc}缁堢偣搴撳尯{endArea}");
-            try
-            {
-                //鏍¢獙璧风偣璐т綅鏄惁瀛樺湪/閿佷綇
-                var loc = db.Queryable<Location>().Where(a => a.S_CODE == startLoc).First();
-                if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y")
-                {
-                    LogHelper.Info("璧风偣璐т綅涓嶅瓨鍦ㄦ垨宸查攣" + startLoc);
-                    return false;
-                }
-                //璁$畻缁堢偣璐т綅
-                //if (string.IsNullOrEmpty(endArea))
-                //{
-                //    return new Results { Code = "1", Message = "鍑哄簱鏈紶缁堢偣搴撳尯!", Data = null };
-                //}
-                //濡傛灉鏄揣鍑戝瀷
-                var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "绱ф�閫佹鍖�).FirstOrDefault();
-                Location OutLoc = null;
-                if (endArea.Equals(reservoirs.areaCode))
-                {
-                    OutLoc = CompactWorkTransport(endArea);
-                }
-                else
-                {
-                    OutLoc = InWorkTransport(endArea);
-                }
-                //鍒涘缓鎵樼洏璐т綅缁戝畾鍏崇郴
-                string trayCode = ContainerHelper.GenerateCntrNo();
-                //娌′紶鐗╂枡鐨勮瘽榛樿涓�釜
-                string itemCode = null;
-                string wlName = null;
-                //if (!string.IsNullOrEmpty(model.S_ITEM_CODE))
-                //{
-                //    itemCode = model.S_ITEM_CODE;
-                //    wlName = db.Queryable<TN_Material>().Where(b => b.S_ITEM_CODE == model.S_ITEM_CODE).First().S_ITEM_NAME;
-                //}
-                if (OutLoc == null)
-                {
-                    LogHelper.Info($"缁堢偣璐т綅涓嶅瓨鍦�, "鎸夐挳鐩掍笅绾�);
-                    return false;
-                }
-                ContainerHelper.BindLocCntrs(OutLoc.S_CODE, trayCode, itemCode, wlName);
-                //鍒涘缓浠诲姟
-                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc}缁堢偣:{OutLoc.S_CODE}", "鎸夐挳鐩掍笅绾�);
-                return TaskProcess.CreateTransport(startLoc, OutLoc.S_CODE, "鎸夐挳鐩掍笅绾�, trayCode, 1, 1);
-
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("tcpOffline:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("tcpOffline:" + ex.Message, ex);
-                throw;
-            }
-        }
-        /// <summary>
-        /// 鎸夐挳鐩掕皟鐢ㄧ┖鎵�-        /// </summary>
-        /// <param name="startLoc">璧风偣璐т綅</param>
-        /// <param name="endLoc">缁堢偣璐т綅</param>
-        /// <returns></returns>
-        internal static bool tcpEmptyTray(string startLoc, string endLoc)
-        {
-            var db = new SqlHelper<Location>().GetInstance();
-            try
-            {
-                //鏍¢獙缁堢偣璐т綅鏄惁閿�-                var endloc = db.Queryable<Location>().Where(a => a.S_CODE == endLoc).First();
-                if (endloc == null || endloc.N_LOCK_STATE != 0 || endloc.C_ENABLE != "Y")
-                {
-                    LogHelper.Info("缁堢偣璐т綅宸查攣" + endLoc);
-                    return false;
-                }
-                //鍒涘缓鎵樼洏璐т綅缁戝畾鍏崇郴
-                string trayCode = ContainerHelper.GenerateCntrNo();
-                //鍒涘缓浠诲姟
-                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc}缁堢偣:{endLoc}", "鎸夐挳鐩掕皟鐢ㄧ┖鎵�);
-                return TaskProcess.CreateTransport(startLoc, endLoc, "鎸夐挳鐩掕皟鐢ㄧ┖鎵�, trayCode, 1, 1);
-
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("materialOffline:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("materialOffline:" + ex.Message, ex);
-                throw;
-            }
-        }
-
-
-        /// <summary>
-        /// 瀹夊叏浜や簰
-        /// </summary>
-        /// <param name="model.STATION_NAME">璇锋眰鐐逛綅</param>
-        /// <param name="model.APPLY_CODE">璇锋眰鐮�/param>
-        /// <returns></returns>
-        internal static safeResult safetyInteraction(SafetyInteraction model)
-        {
-            //0鍏佽杩涘叆 1涓嶅厑璁歌繘鍏�-            var result = new safeResult() { code = "1", msg = "success" };
-            try
-            {
-                var reservoirs = Settings.SafeInteractions.Where(s => s.location == model.STATION_NAME).FirstOrDefault();//y0-0000 y1-0001  on-FF00  off-0000
-                //var rgvSafeInteraction = DeviceProcess.rgvSafeInteraction;
-                var plcDeviceTable = S7Helper.plcDeviceTables;
-                if (plcDeviceTable != null)
-                {
-                    //RGV
-                    if (reservoirs.type.Equals("RGV"))
-                    {
-                        LogHelper.Info($"RGV瀹夊叏浜や簰  璇锋眰鐐逛綅锛歿model.STATION_NAME}璇锋眰鐮侊細{model.APPLY_CODE}");
-                        //澶勭悊淇″彿
-                        var res = int.Parse(plcDeviceTable.RGVAllowUnload[reservoirs.code].ToString().Substring(1, 1));
-                        //鏍规嵁ip璇荤姸鎬�-                        LogHelper.Info($"RGV瀹夊叏浜や簰缂撳瓨淇″彿{res}锛寋JsonConvert.SerializeObject(plcDeviceTable.RGVAllowUnload)}");
-                        //鍗歌揣璇锋眰杩涘叆
-                        if (model.APPLY_CODE.Equals("5"))
-                        {
-                            //1鍏佽鍗歌揣 
-                            if (res == 1)
-                            {
-                                LogHelper.Info($"RGV瀹夊叏浜や簰 鍏佽鍗歌揣");
-                                return new safeResult() { code = "0", msg = "success" };
-                            }
-                        }
-                        //鍗歌揣鍚庡凡绂诲紑
-                        else if (model.APPLY_CODE.Equals("8"))
-                        {
-                            //鍙戦�鍗歌揣瀹屾垚銆佸浣嶄俊鍙�-                            //鍗歌揣瀹屾垚淇″彿
-                            S7Helper.WriteInt(50, reservoirs.code * 2 - 2, (short)(reservoirs.code * 10 + 1));
-
-                            // 鍚姩鍚庡彴浠诲姟澶勭悊寤惰繜澶嶄綅
-                            Task.Run(async () =>
-                            {
-                                //10绉掑悗澶嶄綅
-                                await Task.Delay(10000);
-                                S7Helper.WriteInt(50, reservoirs.code * 2 - 2, (short)(reservoirs.code * 10));
-                                LogHelper.Info($"RGV瀹夊叏浜や簰 澶嶄綅瀹屾垚");
-                            });
-                            //10绉掑悗澶嶄綅
-                            //S7Helper.WriteInt(50, reservoirs.code * 2 - 2, (short)(reservoirs.code * 10));
-                            //safeAssistant(reservoirs.code, res);
-                            LogHelper.Info($"RGV瀹夊叏浜や簰 鍗歌揣瀹屾垚");
-                            return new safeResult() { code = "0", msg = "success" };
-                        }
-
-
-                    }
-                    //鎷嗘墭鏈�-                    else if (reservoirs.type.Equals("CTJ"))
-                    {
-                        LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜� 璇锋眰鐐逛綅锛歿model.STATION_NAME}璇锋眰鐮侊細{model.APPLY_CODE}");
-                        //鎵惧埌绾夸綋 鏍规嵁绾夸綋鎵惧唴瀛橀噷鐨勭姸鎬�-                        var reservoirs1 = Settings.ConveyorLinesInfos.Where(s => s.location == model.STATION_NAME).FirstOrDefault();
-
-                        LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑弬鏁皗JsonConvert.SerializeObject(plcDeviceTable)}");
-                        if (model.APPLY_CODE.Equals("1"))
-                        {
-                            //0-鑴辨満鐘舵�锛�-寰呮満鐘舵�锛�-杩愯涓�   寰呮満涓旀湁鎵樼洏涓旇姹傚彇妗嗘墠璧�-                            if ((reservoirs1.deviceNo == "1" && plcDeviceTable.requestTake1) ||
-                                (reservoirs1.deviceNo == "2" && plcDeviceTable.requestTake2))
-                            {
-                                LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜�鍏佽鍙栨");
-                                return new safeResult() { code = "0", msg = "success" };
-                            }
-
-                        }
-                        else if (model.APPLY_CODE.Equals("5"))
-                        {
-                            //0-鑴辨満鐘舵�锛�-寰呮満鐘舵�锛�-杩愯涓�   寰呮満涓旀棤鎵樼洏涓斿厑璁告斁妗嗘墠璧�-                            if ((reservoirs1.deviceNo == "1" && plcDeviceTable.requestPut1) ||
-                                (reservoirs1.deviceNo == "2" && plcDeviceTable.requestPut2))
-                            {
-                                LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜�鍏佽鏀炬");
-                                return new safeResult() { code = "0", msg = "success" };
-                            }
-                        }
-                        //鍙栬揣绂诲紑
-                        else if (model.APPLY_CODE.Equals("4"))
-                        {
-                            int offsetAddr = 8;
-                            if (reservoirs1.deviceNo == "1")
-                            {
-                                offsetAddr = 1;
-                            }
-                            else if (reservoirs1.deviceNo == "2")
-                            {
-                                offsetAddr = 3;
-                            }
-                            LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑啓鍏reservoirs1.deviceNo}锛寋offsetAddr}");
-                            S7Helper.WriteDouble(reservoirs1.deviceNo, 9, 182, offsetAddr, 1);
-                            LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜�鍙栨绂诲紑");
-                            return new safeResult() { code = "0", msg = "success" };
-                        }
-                        //鍗歌揣绂诲紑
-                        else if (model.APPLY_CODE.Equals("8"))
-                        {
-                            int offsetAddr = 8;//闅忎究缁欎竴涓�-                            if (reservoirs1.deviceNo == "1")
-                            {
-                                offsetAddr = 0;
-                            }
-                            else if (reservoirs1.deviceNo == "2")
-                            {
-                                offsetAddr = 2;
-                            }
-                            LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑啓鍏reservoirs1.deviceNo}锛寋offsetAddr}");
-                            S7Helper.WriteDouble(reservoirs1.deviceNo, 9, 182, offsetAddr, 1);
-                            LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜�鍙栨绂诲紑");
-                            return new safeResult() { code = "0", msg = "success" };
-                        }
-
-                    }
-                }
-                return result;
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("safetyInteraction:" + ex.Message + ex.StackTrace);
-                LogHelper.Error("safetyInteraction:" + ex.Message, ex);
-                throw;
-            }
-        }
-        //寰幆鍙戦�淇″彿
-        private static void safeAssistant(int code, int res)
-        {
-            Thread.Sleep(10000);
-            S7Helper.WriteInt(50, code * 2 - 2, (short)(code * 10));
-            LogHelper.Info($"RGV瀹夊叏浜や簰 澶嶄綅瀹屾垚");
-            ////2鍗歌揣瀹屾垚纭
-            //if (res != 2)
-            //{
-            //    //鍗歌揣瀹屾垚淇″彿
-            //    S7Helper.WriteInt(50, code * 2 - 2, (short)(code * 10 + 1));
-            //    Thread.Sleep(3000);
-            //    safeAssistant(code, res);
-            //}
-            //else
-            //{
-            //    S7Helper.WriteInt(50, code * 2 - 2, (short)(code * 10));
-            //}
-
-        }
-
-        /// <summary>
-        /// 鎸夐挳鎺у埗鏈嶅姟寮�叧
-        /// </summary>
-        /// <param name="isusing.S_STATUS">鏈嶅姟鐘舵�</param>
-        /// <param name="isusing.S_TYPE">鏈嶅姟绫诲瀷</param>
-        /// <returns></returns>
-        internal static Results switchButton(Isusing isusing)
-        {
-            var db = new SqlHelper<object>().GetInstance();
-            var result = new Results() { Code = "1", Message = $"鏈嶅姟鐘舵�澶辫触锛�, Data = null };
-            var isusinglist = db.Queryable<Isusing>().Where(a => a.S_TYPE == isusing.S_TYPE).First();
-            isusinglist.S_STATUS = isusing.S_STATUS;
-            var res = db.Updateable(isusinglist).UpdateColumns(it => it.S_STATUS).ExecuteCommand() > 0;
-            if (res)
-            {
-                return new Results() { Code = "0", Message = $"鏈嶅姟鐘舵�淇敼鎴愬姛锛�, Data = null };
-
-            }
-            return result;
-        }
-        //tcp鍙戦�淇″彿 娴嬭瘯鐢�-        internal static Results tcpSend(string str)
-        {
-            var reservoirs = Settings.SafeInteractions.Where(s => s.code == 1).FirstOrDefault();
-            //娴嬭瘯鐢�-            LogHelper.Info($"RGV瀹夊叏浜や簰鍙戦�淇″彿{reservoirs.ip},{str}");
-            //鏃犵姸鎬佷俊鍙�-            bool res = PlcHelper.SendHex(reservoirs.ip, str);
-            if (res)
-            {
-                return new Results() { Code = "0", Message = $"鍙戦�鎴愬姛", Data = null };
-            }
-
-            return new Results() { Code = "1", Message = $"鍙戦�澶辫触", Data = null };
-        }
-
-        #endregion
 
         /// <summary>
         /// 澶т欢
@@ -1779,7 +889,7 @@
             try
             {
                 var startLoc = new Location();
-                var endLoc = new Location();
+                string endLocStr = null;
                 string Message = null;
                 switch (model.ts_name)
                 {
@@ -1789,13 +899,8 @@
                         {
                             Message = $"{model.parameter.src}搴撲綅宸茶閿佸畾!";
                         }
-
-                        endLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.parameter.dst).First();
-                        if (startLoc == null || startLoc.N_LOCK_STATE != 0 || startLoc.C_ENABLE != "Y")
-                        {
-                            Message = $"{model.parameter.dst}搴撲綅宸茶閿佸畾!";
-                        }
-
+                        endLocStr = model.parameter.dst;
+                        
                         break;
                     case "p2a":
                         startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.parameter.src).First();
@@ -1803,31 +908,56 @@
                         {
                             Message = $"{model.parameter.src}搴撲綅宸茶閿佸畾!";
                         }
-                        endLoc = InWorkTransport(model.parameter.dst);
+                        var endLoc = InWorkTransport(model.parameter.dst_area);
                         if (endLoc==null)
                         {
-                            Message = $"{model.parameter.dst}搴撳尯娌℃湁鍙叆璐т綅!";
+                            //濡傛灉娌℃壘鍒板氨绛夌涓�潯
+                            endLocStr = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == model.parameter.dst).OrderByDescending(a => a.N_ROW).ToList()[0].S_CODE;
+
                         }
                         break;
                     case "a2p":
-                        startLoc = OutWorkTransport(model.parameter.src);
+                        startLoc = OutWorkTransport(model.parameter.src_area);
                         if (startLoc==null)
                         {
                             Message = $"{model.parameter.dst}搴撳尯娌℃湁鍙嚭璐т綅!";
                         }
 
-                        endLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.parameter.dst).First();
-                        if (startLoc == null || startLoc.N_LOCK_STATE != 0 || startLoc.C_ENABLE != "Y")
+                        endLocStr = model.parameter.dst;
+                        break;
+                    case "a2a":
+                        startLoc = OutWorkTransport(model.parameter.src_area);
+                        if (startLoc == null)
                         {
-                            Message = $"{model.parameter.dst}搴撲綅宸茶閿佸畾!";
+                            Message = $"{model.parameter.src}搴撳尯娌℃湁鍙嚭璐т綅!";
                         }
+                        var endLoc1 = InWorkTransport(model.parameter.dst_area);
+                        if (endLoc1 == null)
+                        {
+                            //濡傛灉娌℃壘鍒板氨绛夌涓�潯
+                            endLocStr = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == model.parameter.dst).OrderByDescending(a => a.N_ROW).ToList()[0].S_CODE;
+
+                        }
+                        break;
+                    case "p2u":
+                        startLoc = OutWorkTransport(model.parameter.src);
+                        if (startLoc == null)
+                        {
+                            Message = $"{model.parameter.src}搴撳尯娌℃湁鍙嚭璐т綅!";
+                        }
+                        endLocStr = "";
                         break;
                 }
 
+                //鍒涘缓鎵樼洏璐т綅缁戝畾鍏崇郴
+                string trayCode = ContainerHelper.GenerateCntrNo();
+                //缁戝畾璧风偣璐т綅(浜х嚎)鍜岀墿鏂�+                ContainerHelper.BindLocCntrs(startLoc.S_CODE, trayCode, model.parameter.sku, "");
+
                 var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
                 //鍒涘缓浠诲姟
-                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}", model.ts_name);
-                var res = TaskProcess.CreateTransport(startLoc.S_CODE, endLoc.S_CODE, model.ts_name, locCntrRel.S_CNTR_CODE, 1, 1);
+                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLocStr}", model.ts_name);
+                var res = TaskProcess.CreateTransport(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, 1, 1);
                 if (!res)
                 {
                     return new TaskResponse

--
Gitblit v1.9.1