海波 张
2025-05-19 a99ceecce8c9a2521ac1fc167f4eff764cbdb123
bug优化
5个文件已修改
554 ■■■■ 已修改文件
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/ApiModel.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
process/TaskProcess.cs 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wms/LocationHelper.cs 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json
@@ -3,20 +3,40 @@
  "WorkspaceRootPath": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\util\\dingtalk.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:util\\dingtalk.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\taskhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -31,14 +51,6 @@
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    },
@@ -49,14 +61,6 @@
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -66,7 +70,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 12,
          "SelectedChildIndex": 10,
          "Children": [
            {
              "$type": "Bookmark",
@@ -78,7 +82,20 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "DocumentIndex": 4,
              "Title": "DingTalk.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\DingTalk.cs",
              "RelativeDocumentMoniker": "util\\DingTalk.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\DingTalk.cs",
              "RelativeToolTip": "util\\DingTalk.cs",
              "ViewState": "AgIAAFQBAAAAAAAAAAAswGsBAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-19T06:20:50.133Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "Program.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
              "RelativeDocumentMoniker": "Program.cs",
@@ -91,32 +108,33 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "DocumentIndex": 7,
              "Title": "WcsModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
              "RelativeDocumentMoniker": "wms\\WcsModel.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
              "RelativeToolTip": "wms\\WcsModel.cs",
              "ViewState": "AgIAAGcAAAAAAAAAAAAswHEAAAAVAAAAAAAAAA==",
              "ViewState": "AgIAAFQAAAAAAAAAAAAQwFcAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T06:24:55.849Z"
              "WhenOpened": "2025-05-14T06:24:55.849Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "DocumentIndex": 6,
              "Title": "ApiModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
              "RelativeDocumentMoniker": "api\\ApiModel.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
              "RelativeToolTip": "api\\ApiModel.cs",
              "ViewState": "AgIAAEIAAAAAAAAAAAA0wFkAAAAvAAAAAAAAAA==",
              "ViewState": "AgIAAE0AAAAAAAAAAAA8wGEAAAAmAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T02:39:17.635Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "DocumentIndex": 9,
              "Title": "TaskHelper.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
              "RelativeDocumentMoniker": "wms\\TaskHelper.cs",
@@ -129,7 +147,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "DocumentIndex": 13,
              "Title": "Monitor.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
              "RelativeDocumentMoniker": "core\\Monitor.cs",
@@ -142,7 +160,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "DocumentIndex": 10,
              "Title": "DeviceProcess.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
              "RelativeDocumentMoniker": "process\\DeviceProcess.cs",
@@ -155,33 +173,33 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "DocumentIndex": 3,
              "Title": "WcsTask.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
              "RelativeDocumentMoniker": "dispatch\\WcsTask.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
              "RelativeToolTip": "dispatch\\WcsTask.cs",
              "ViewState": "AgIAAKAAAAAAAAAAAAAYwJgAAAAbAAAAAAAAAA==",
              "ViewState": "AgIAAI0CAAAAAAAAAAAswKICAABNAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:19:48.409Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "DocumentIndex": 0,
              "Title": "LocationHelper.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
              "RelativeDocumentMoniker": "wms\\LocationHelper.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
              "RelativeToolTip": "wms\\LocationHelper.cs",
              "ViewState": "AgIAAHECAAAAAAAAAAAYwIwCAAAVAAAAAAAAAA==",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs*",
              "RelativeToolTip": "wms\\LocationHelper.cs*",
              "ViewState": "AgIAADMCAAAAAAAAAAAQwEwCAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:13:15.283Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "DocumentIndex": 14,
              "Title": "AgvController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\AgvController.cs",
              "RelativeDocumentMoniker": "api\\AgvController.cs",
@@ -194,7 +212,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "DocumentIndex": 12,
              "Title": "config.json",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json",
              "RelativeDocumentMoniker": "config\\config.json",
@@ -207,26 +225,26 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "DocumentIndex": 8,
              "Title": "TaskCore.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs",
              "RelativeDocumentMoniker": "core\\TaskCore.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs*",
              "RelativeToolTip": "core\\TaskCore.cs*",
              "ViewState": "AgIAADgAAAAAAAAAAAAAwFMAAAAtAAAAAAAAAA==",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs",
              "RelativeToolTip": "core\\TaskCore.cs",
              "ViewState": "AgIAAEEAAAAAAAAAAAAAwE4AAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T01:45:08.835Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 1,
              "Title": "TaskProcess.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
              "RelativeDocumentMoniker": "process\\TaskProcess.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
              "RelativeToolTip": "process\\TaskProcess.cs",
              "ViewState": "AgIAAHgAAAAAAAAAAAAYwJEAAAAAAAAAAAAAAA==",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs*",
              "RelativeToolTip": "process\\TaskProcess.cs*",
              "ViewState": "AgIAAAAGAAAAAAAAAAAswCIGAAA/AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T00:45:23.095Z",
              "EditorCaption": ""
@@ -239,20 +257,20 @@
              "RelativeDocumentMoniker": "api\\WmsController.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeToolTip": "api\\WmsController.cs",
              "ViewState": "AgIAALkAAAAAAAAAAAAswMsAAAAkAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:08.931Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "DocumentIndex": 5,
              "Title": "WMSModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeDocumentMoniker": "wms\\WMSModel.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeToolTip": "wms\\WMSModel.cs",
              "ViewState": "AgIAAK0AAAAAAAAAAAAswLwAAAAHAAAAAAAAAA==",
              "ViewState": "AgIAAE0CAAAAAAAAAAAQwGICAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:05.064Z",
              "EditorCaption": ""
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json
@@ -3,20 +3,40 @@
  "WorkspaceRootPath": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\util\\dingtalk.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:util\\dingtalk.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\taskhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -31,14 +51,6 @@
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    },
@@ -49,14 +61,6 @@
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -66,7 +70,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 12,
          "SelectedChildIndex": 14,
          "Children": [
            {
              "$type": "Bookmark",
@@ -78,7 +82,20 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "DocumentIndex": 4,
              "Title": "DingTalk.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\DingTalk.cs",
              "RelativeDocumentMoniker": "util\\DingTalk.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\DingTalk.cs",
              "RelativeToolTip": "util\\DingTalk.cs",
              "ViewState": "AgIAAFQBAAAAAAAAAAAswGsBAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-19T06:20:50.133Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "Program.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
              "RelativeDocumentMoniker": "Program.cs",
@@ -91,32 +108,33 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "DocumentIndex": 7,
              "Title": "WcsModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
              "RelativeDocumentMoniker": "wms\\WcsModel.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
              "RelativeToolTip": "wms\\WcsModel.cs",
              "ViewState": "AgIAAGcAAAAAAAAAAAAswHEAAAAVAAAAAAAAAA==",
              "ViewState": "AgIAAFQAAAAAAAAAAAAQwFcAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T06:24:55.849Z"
              "WhenOpened": "2025-05-14T06:24:55.849Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "DocumentIndex": 6,
              "Title": "ApiModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
              "RelativeDocumentMoniker": "api\\ApiModel.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
              "RelativeToolTip": "api\\ApiModel.cs",
              "ViewState": "AgIAAEIAAAAAAAAAAAA0wFkAAAAvAAAAAAAAAA==",
              "ViewState": "AgIAAE0AAAAAAAAAAAA8wGEAAAAmAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T02:39:17.635Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "DocumentIndex": 9,
              "Title": "TaskHelper.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
              "RelativeDocumentMoniker": "wms\\TaskHelper.cs",
@@ -129,7 +147,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "DocumentIndex": 13,
              "Title": "Monitor.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
              "RelativeDocumentMoniker": "core\\Monitor.cs",
@@ -142,7 +160,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "DocumentIndex": 10,
              "Title": "DeviceProcess.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
              "RelativeDocumentMoniker": "process\\DeviceProcess.cs",
@@ -155,33 +173,33 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "DocumentIndex": 3,
              "Title": "WcsTask.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
              "RelativeDocumentMoniker": "dispatch\\WcsTask.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
              "RelativeToolTip": "dispatch\\WcsTask.cs",
              "ViewState": "AgIAAKAAAAAAAAAAAAAYwJgAAAAbAAAAAAAAAA==",
              "ViewState": "AgIAAI0CAAAAAAAAAAAswKICAABNAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:19:48.409Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "DocumentIndex": 1,
              "Title": "LocationHelper.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
              "RelativeDocumentMoniker": "wms\\LocationHelper.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
              "RelativeToolTip": "wms\\LocationHelper.cs",
              "ViewState": "AgIAAHECAAAAAAAAAAAYwIwCAAAVAAAAAAAAAA==",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs*",
              "RelativeToolTip": "wms\\LocationHelper.cs*",
              "ViewState": "AgIAAFQDAAAAAAAAAAAQwGkDAAAuAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:13:15.283Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "DocumentIndex": 14,
              "Title": "AgvController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\AgvController.cs",
              "RelativeDocumentMoniker": "api\\AgvController.cs",
@@ -194,7 +212,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "DocumentIndex": 12,
              "Title": "config.json",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json",
              "RelativeDocumentMoniker": "config\\config.json",
@@ -207,26 +225,26 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "DocumentIndex": 8,
              "Title": "TaskCore.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs",
              "RelativeDocumentMoniker": "core\\TaskCore.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs*",
              "RelativeToolTip": "core\\TaskCore.cs*",
              "ViewState": "AgIAADgAAAAAAAAAAAAAwFAAAAAfAAAAAAAAAA==",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs",
              "RelativeToolTip": "core\\TaskCore.cs",
              "ViewState": "AgIAAEEAAAAAAAAAAAAAwE4AAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T01:45:08.835Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 0,
              "Title": "TaskProcess.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
              "RelativeDocumentMoniker": "process\\TaskProcess.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
              "RelativeToolTip": "process\\TaskProcess.cs",
              "ViewState": "AgIAAHgAAAAAAAAAAAAYwJEAAAAAAAAAAAAAAA==",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs*",
              "RelativeToolTip": "process\\TaskProcess.cs*",
              "ViewState": "AgIAAAYGAAAAAAAAAAAswCYGAABQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T00:45:23.095Z",
              "EditorCaption": ""
@@ -239,20 +257,20 @@
              "RelativeDocumentMoniker": "api\\WmsController.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeToolTip": "api\\WmsController.cs",
              "ViewState": "AgIAALkAAAAAAAAAAAAswMsAAAAkAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:08.931Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "DocumentIndex": 5,
              "Title": "WMSModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeDocumentMoniker": "wms\\WMSModel.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeToolTip": "wms\\WMSModel.cs",
              "ViewState": "AgIAAK0AAAAAAAAAAAAswLwAAAAHAAAAAAAAAA==",
              "ViewState": "AgIAAE0CAAAAAAAAAAAQwGICAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:05.064Z",
              "EditorCaption": ""
api/ApiModel.cs
@@ -92,7 +92,15 @@
            public string ext_data { get; set; }
        }
        /// <summary>
        /// 接驳位均衡记录
        /// </summary>
        public class connectionBalance
        {
            public int taskCount { get; set; }
            public Location loc { get; set; }
        }
        /// <summary>
        /// osttoagv上报其它事件信息
process/TaskProcess.cs
@@ -289,7 +289,7 @@
                        foreach (var item in usableConnectionList.available)
                        {
                            var con = LocationHelper.GetLoc(item);
                            if (con.S_CODE.Contains(task.S_END_LOC) && con.C_ENABLE=="Y")
                            if (con.S_CODE.Contains(task.S_END_LOC))
                            {
                                flag = false;
@@ -1308,14 +1308,16 @@
                        var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
                        if (usableConnectionList != null && usableConnectionList.code == "0")
                        {
                            foreach (var item in usableConnectionList.available)
                            //根据接驳位任务数量获取均衡接驳位集合优先任务数少的接驳位
                            var balanceConnectionList =  LocationHelper.GetBalanceConnectionList(usableConnectionList.available);
                            foreach (var item in balanceConnectionList)
                            {
                                var con = LocationHelper.GetLoc(item);
                                if (con.N_CURRENT_NUM < 2 && con.C_ENABLE == "Y")
                                if (item.loc.N_CURRENT_NUM<2)
                                {
                                    connection = con.S_CODE;
                                    connectionArea = con.S_AREA_Name;
                                    connection = item.loc.S_CODE;
                                    connectionArea = item.loc.S_AREA_Name;
                                    LogHelper.Info($"ZCSendTask入库任务下发寻找到可用接驳位{connection}", "Mes任务下发");
                                    break;
                                }
                            }
                        }
@@ -1385,10 +1387,10 @@
                    }
                    LogHelper.Info($"ZCSendTask任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                    LogHelper.Info($"ZCSendTask入库任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                    if (end == null) {
                        LogHelper.Info($"ZCSendTask任务下发失败,终点库区{workFlow.ENDAREA},没找到终点", "Mes任务下发");
                        LogHelper.Info($"ZCSendTask入库任务下发失败,终点库区{workFlow.ENDAREA},没找到终点", "Mes任务下发");
                        throw new Exception($"终点库区{workFlow.ENDAREA},没找到终点");
                    }
@@ -1547,6 +1549,19 @@
                        else {
                            //根据制品编号寻找立库区对应物料托盘
                            start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY);
                            if (start==null)
                            {
                                var itemFlag = LocationHelper.FindStartcolByLoclistAndItemFlag(strrtList, model.PROD_NO, workFlow.STARTAREA);
                                LogHelper.Info($"ZCSendTask满托出库任务没找到起点,校验是否有库存但是设备报警{itemFlag}", "Mes任务下发");
                                if (itemFlag)
                                {
                                    result.errMsg = "满托出库作业有库存但设备报警";
                                    result.errCode = 2001;
                                    result.success = true;
                                    return result;
                                }
                            }
                        }
@@ -1554,6 +1569,19 @@
                    else if (workFlow.FLOWCODE == "7") {
                        //寻找立库区空托
                        start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA);
                        if (start == null)
                        {
                            var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA);
                            LogHelper.Info($"ZCSendTask空托出库任务没找到起点,校验是否有库存但是设备报警{itemFlag}", "Mes任务下发");
                            if (itemFlag)
                            {
                                result.errMsg = "空托出库作业有库存但设备报警";
                                result.errCode = 2001;
                                result.success = true;
                                return result;
                            }
                        }
                    }
@@ -1626,24 +1654,37 @@
                        //正式代码,调用接口寻找可用接驳位
                        var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
                        var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
                        if (usableConnectionList != null && usableConnectionList.code == "0")
                        //var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
                        //if (usableConnectionList != null && usableConnectionList.code == "0")
                        //{
                        //    foreach (var item in usableConnectionList.available)
                        //    {
                        //        var con = LocationHelper.GetLoc(item);
                        //        if (con.C_ENABLE == "Y" && con.N_CURRENT_NUM < 2)
                        //        {
                        //            connection = con.S_CODE;
                        //            connectionArea = con.S_AREA_Name;
                        //            LogHelper.Info($"ZCSendTask出库任务下发寻找到可用接驳位{connection}", "Mes任务下发");
                        //        }
                        //    }
                        //}
                        //else
                        //{
                        //    LogHelper.Info($"ZCSendTask出库任务下发寻找接驳位失败", "Mes任务下发");
                        //    throw new Exception($"ZCSendTask出库任务下发寻找接驳位失败");
                        //}
                        //根据接驳位任务数量获取均衡接驳位集合优先任务数少的接驳位
                        var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList);
                        foreach (var item in balanceConnectionList)
                        {
                            foreach (var item in usableConnectionList.available)
                            if (item.loc.N_CURRENT_NUM < 2)
                            {
                                var con = LocationHelper.GetLoc(item);
                                if (con.C_ENABLE == "Y" && con.N_CURRENT_NUM < 2)
                                {
                                    connection = con.S_CODE;
                                    connectionArea = con.S_AREA_Name;
                                    LogHelper.Info($"ZCSendTask出库任务下发寻找到可用接驳位{connection}", "Mes任务下发");
                                }
                                connection = item.loc.S_CODE;
                                connectionArea = item.loc.S_AREA_Name;
                                LogHelper.Info($"ZCSendTask出库任务下发寻找到可用接驳位{connection}", "Mes任务下发");
                                break;
                            }
                        }
                        else
                        {
                            LogHelper.Info($"ZCSendTask出库任务下发寻找接驳位失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask出库任务下发寻找接驳位失败");
                        }
                        if (connection == "")
wms/LocationHelper.cs
@@ -1,6 +1,7 @@
using HH.WCS.ZhongCeJinTan;
using HH.WCS.ZhongCeJinTan.util;
using HH.WCS.ZhongCeJinTan.wms;
using Microsoft.Owin;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@@ -9,6 +10,7 @@
using System.Text;
using System.Threading.Tasks;
using Top.Api;
using static HH.WCS.ZhongCeJinTan.api.ApiModel;
using static HH.WCS.ZhongCeJinTan.util.Settings;
using static HH.WCS.ZhongCeJinTan.wms.WcsModel;
@@ -96,6 +98,31 @@
            }
            return result;
        }
        /// <summary>
        /// 返回均衡的接驳位集合
        /// </summary>
        internal static List<connectionBalance> GetBalanceConnectionList(List<string> locList)
        {
            var db = new SqlHelper<object>().GetInstance();
            List<connectionBalance> result = new List<connectionBalance>();
            foreach (var item in locList)
            {
                var ConnectionList = 0;
                ConnectionList = db.Queryable<WMSTask>().Where(a => (a.S_END_LOC.Contains(item) || a.S_START_LOC.Contains(item)) && a.S_B_STATE != "完成" && a.S_B_STATE != "取消" && a.S_B_STATE != "错误").ToList().Count();
                var re = new connectionBalance();
                var con = LocationHelper.GetLoc(item);
                re.loc = con;
                re.taskCount = ConnectionList;
                result.Add(re);
            }
            return result.OrderBy(a => a.taskCount).ToList();
        }
        /// <summary>
        /// 找终点巷道可用空货位
@@ -201,6 +228,97 @@
        }
        /// <summary>
        /// 找终点巷道可用空货位 均衡
        /// </summary>
        /// <param name="locations"></param>
        /// <returns></returns>
        internal static Location FindBalanceEndcolByLocList(List<Location> locations, string endArea, string rodway = "")
        {
            try
            {
                var db = new SqlHelper<object>().GetInstance();
                Location end = null;
                //根据终点货位找空闲货位
                var rows = locations.Select(a => a.N_ROW).Distinct().ToList();
                //作业流程的巷道
                var xd = new List<string>();
                List<RoadWayEnable> rowdwa = null;
                if (!string.IsNullOrEmpty(rodway))
                {
                    xd = rodway.Split('-').ToList();
                    rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == endArea && x.status == "0" && xd.Contains(x.roadWay)).ToList();
                }
                else
                {
                    //查找可用巷道
                    rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == endArea && x.status == "0").ToList();
                }
                for (int i = 0; i < rows.Count; i++)
                {
                    var rowList = locations.Where(r => r.N_ROW == rows[i]).ToList();
                    var flag = false;
                    var flag1 = false;
                    foreach (var item in rowdwa)
                    {
                        if (rowList.Count(a => a.N_ROADWAY.ToString() == item.roadWay) > 0)
                        {
                            flag = true;
                            break;
                        }
                    }
                    foreach (var item1 in xd)
                    {
                        if (rowList.Count(a => a.N_ROADWAY.ToString() != item1) > 0)
                        {
                            flag1 = true;
                            break;
                        }
                    }
                    if (flag1 || flag)
                    {
                       locations.RemoveAll(a => a.N_ROW == rows[i]);
                    }
                    if (rowList.Count(a => a.N_CURRENT_NUM == 0) == 0)
                    {
                        locations.RemoveAll(a => a.N_ROW == rows[i]);
                    }
                }
                foreach (var item in locations)
                {
                    if (item.S_LOCK_STATE=="无" && item.N_CURRENT_NUM==0)
                    {
                        end = item;
                        break;
                    }
                }
                return end;
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// 找终点可用空货位排除不可用巷道
@@ -390,7 +508,7 @@
                Location start = null;
                var rowsStart = locations.Select(a => a.N_ROW).Distinct().ToList();
                //查找可用巷道
                //查找不可用巷道
                var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == startArea && x.status == "0").ToList();
                for (int i = 0; i < rowsStart.Count; i++)
@@ -448,6 +566,50 @@
                throw;
            }
        }
        /// <summary>
        /// 根据起点立库区找空托 校验库存
        /// </summary>
        /// <param name="locations"></param>
        /// <returns></returns>
        internal static bool FindStartcolByLoclistAndcntrFlag(List<Location> locations, string startArea)
        {
            var db = new SqlHelper<object>().GetInstance();
            try
            {
                var start = false;
                var rowsStart = locations.Select(a => a.N_ROW).Distinct().ToList();
                foreach (var item in locations)
                {
                    if (item.N_CURRENT_NUM == 0)
                    {
                        continue;
                    }
                    var tp = db.Queryable<LocCntrRel>().Where(s => s.S_LOC_CODE == item.S_CODE).First();
                    if (tp != null && item.S_LOCK_STATE == "无")
                    {
                        var tp1 = db.Queryable<Container>().Where(s => s.S_CODE == tp.S_CNTR_CODE).First();
                        if (tp1 != null && tp1.N_DETAIL_COUNT == 0)
                        {
                            return true;
                        }
                    }
                }
                return start;
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// 根据起点货架区找空托
@@ -689,9 +851,60 @@
                throw;
            }
        }
        /// <summary>
        /// 根据物料编码找立库区起点满货位 校验有库存但是设备报警
        /// </summary>
        /// <param name="locations"></param>
        /// <returns></returns>
        internal static bool FindStartcolByLoclistAndItemFlag(List<Location> locations, string itemCode, string endArea)
        {
            var db = new SqlHelper<object>().GetInstance();
            var res = false;
            try
            {
                var rowsStart = locations.Select(a => a.N_ROW).Distinct().ToList();
                DateTime date = DateTime.Now;
                List<CntrItemRel> startList = new List<CntrItemRel>(); ;
                foreach (var item in locations)
                {
                    if (item.N_CURRENT_NUM == 0)
                    {
                        continue;
                    }
                    var tp = db.Queryable<LocCntrRel>().Where(s => s.S_LOC_CODE == item.S_CODE).First();
                   // LogHelper.Info($"ZCSendTask出库任务下发起点货位容器信息" + JsonConvert.SerializeObject(tp), "Mes任务下发");
                    if (tp != null && item.S_LOCK_STATE == "无")
                    {
                        var tp1 = db.Queryable<CntrItemRel>().Where(s => s.S_CNTR_CODE == tp.S_CNTR_CODE).First();
                        //LogHelper.Info($"ZCSendTask出库任务下发起点容器物料信息" + JsonConvert.SerializeObject(tp1), "Mes任务下发");
                        if (tp1 != null && tp1.S_ITEM_CODE == itemCode && tp1.S_ITEM_STATE == "合格" && tp1.takeEffectTime < date && tp1.expireTime > date)
                        {
                            res = true;
                            return res;
                        }
                    }
                }
                return res;
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// 根据物料编码找货架区起点满货位
        /// </summary>