海波 张
2025-05-29 5b6a0b390fc0ca7a5519ad6fb9a27bbca80e3cad
空托修改
10个文件已修改
743 ■■■■ 已修改文件
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Program.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/config.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
core/Monitor.cs 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
process/TaskProcess.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
util/LogHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
util/Settings.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wms/TaskHelper.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wms/WMSModel.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json
@@ -3,16 +3,56 @@
  "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\\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\\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\\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\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\deviceprocess.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}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\taskhelper.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\\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\\core\\monitor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\monitor.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\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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\\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\\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\\util\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:util\\settings.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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\util\\loghelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:util\\loghelper.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\\ndcapi.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\ndcapi.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}",
@@ -23,26 +63,6 @@
      "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\\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\\taskhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\taskhelper.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\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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\\core\\monitor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\monitor.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\\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}"
    },
@@ -51,24 +71,12 @@
      "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\\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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\util\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:util\\settings.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\\moboxcontroller.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\\moboxcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\moboxcontroller.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}",
      "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\\process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -78,7 +86,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 16,
          "SelectedChildIndex": 18,
          "Children": [
            {
              "$type": "Bookmark",
@@ -90,20 +98,45 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "DocumentIndex": 11,
              "Title": "LogHelper.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\LogHelper.cs",
              "RelativeDocumentMoniker": "util\\LogHelper.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\LogHelper.cs",
              "RelativeToolTip": "util\\LogHelper.cs",
              "ViewState": "AgIAAEEAAAAAAAAAAAAiwFcAAAA/AQAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T07:39:06.007Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "NDCApi.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\NDCApi.cs",
              "RelativeDocumentMoniker": "dispatch\\NDCApi.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\NDCApi.cs",
              "RelativeToolTip": "dispatch\\NDCApi.cs",
              "ViewState": "AgIAAJAAAAAAAAAAAAAuwKcAAAAjAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-27T06:31:46.399Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "Settings.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\Settings.cs",
              "RelativeDocumentMoniker": "util\\Settings.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\Settings.cs",
              "RelativeToolTip": "util\\Settings.cs",
              "ViewState": "AgIAABsAAAAAAAAAAAAqwCkAAAA6AAAAAAAAAA==",
              "ViewState": "AgIAAB0AAAAAAAAAAAAhwDMAAAABAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-22T02:36:21.595Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "DocumentIndex": 17,
              "Title": "MoboxController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\MoboxController.cs",
              "RelativeDocumentMoniker": "api\\MoboxController.cs",
@@ -111,12 +144,11 @@
              "RelativeToolTip": "api\\MoboxController.cs",
              "ViewState": "AgIAACgAAAAAAAAAAAAAwDAAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-20T00:59:46.638Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-20T00:59:46.638Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "DocumentIndex": 18,
              "Title": "DingTalk.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\DingTalk.cs",
              "RelativeDocumentMoniker": "util\\DingTalk.cs",
@@ -124,25 +156,24 @@
              "RelativeToolTip": "util\\DingTalk.cs",
              "ViewState": "AgIAAFQBAAAAAAAAAAAswGsBAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-19T06:20:50.133Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-19T06:20:50.133Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "DocumentIndex": 7,
              "Title": "Program.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
              "RelativeDocumentMoniker": "Program.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
              "RelativeToolTip": "Program.cs",
              "ViewState": "AgIAAEwAAAAAAAAAAAAgwF4AAAAxAAAAAAAAAA==",
              "ViewState": "AgIAAEcAAAAAAAAAAIAywF4AAAAxAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T08:30:12.949Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "DocumentIndex": 16,
              "Title": "WcsModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
              "RelativeDocumentMoniker": "wms\\WcsModel.cs",
@@ -150,73 +181,70 @@
              "RelativeToolTip": "wms\\WcsModel.cs",
              "ViewState": "AgIAAGMAAAAAAAAAAAAkwHAAAAAGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T06:24:55.849Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-14T06:24:55.849Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "DocumentIndex": 14,
              "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*",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
              "RelativeToolTip": "api\\ApiModel.cs",
              "ViewState": "AgIAAJAAAAAAAAAAAAAAwJsAAAAZAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T02:39:17.635Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-14T02:39:17.635Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "DocumentIndex": 3,
              "Title": "TaskHelper.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
              "RelativeDocumentMoniker": "wms\\TaskHelper.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
              "RelativeToolTip": "wms\\TaskHelper.cs",
              "ViewState": "AgIAAFIDAAAAAAAAAAAuwGkDAAAiAAAAAAAAAA==",
              "ViewState": "AgIAAB0AAAAAAAAAAAApwEAAAAAGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T02:35:57.671Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "DocumentIndex": 6,
              "Title": "Monitor.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
              "RelativeDocumentMoniker": "core\\Monitor.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
              "RelativeToolTip": "core\\Monitor.cs",
              "ViewState": "AgIAADsAAAAAAAAAAAAowDcAAABIAAAAAAAAAA==",
              "ViewState": "AgIAAAkAAAAAAAAAAAASwCAAAAAqAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T02:11:55.478Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "DocumentIndex": 2,
              "Title": "DeviceProcess.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
              "RelativeDocumentMoniker": "process\\DeviceProcess.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
              "RelativeToolTip": "process\\DeviceProcess.cs",
              "ViewState": "AgIAANkAAAAAAAAAAAAYwO0AAAAoAAAAAAAAAA==",
              "ViewState": "AgIAABcBAAAAAAAAAAAgwO0AAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:22:54.115Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 13,
              "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*",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
              "RelativeToolTip": "dispatch\\WcsTask.cs",
              "ViewState": "AgIAAC4CAAAAAAAAAAAQwEACAAAHAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:19:48.409Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-13T09:19:48.409Z"
            },
            {
              "$type": "Document",
@@ -226,14 +254,14 @@
              "RelativeDocumentMoniker": "wms\\LocationHelper.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
              "RelativeToolTip": "wms\\LocationHelper.cs",
              "ViewState": "AgIAADMAAAAAAAAAAAAwwEcAAAAnAAAAAAAAAA==",
              "ViewState": "AgIAAEwFAAAAAAAAAAAhwGUFAABjAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:13:15.283Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "DocumentIndex": 15,
              "Title": "AgvController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\AgvController.cs",
              "RelativeDocumentMoniker": "api\\AgvController.cs",
@@ -241,31 +269,30 @@
              "RelativeToolTip": "api\\AgvController.cs",
              "ViewState": "AgIAADwBAAAAAAAAAAAQwFEBAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T03:17:31.542Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-13T03:17:31.542Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "DocumentIndex": 10,
              "Title": "config.json",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json",
              "RelativeDocumentMoniker": "config\\config.json",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json",
              "RelativeToolTip": "config\\config.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAgAAAAAAAAAA==",
              "ViewState": "AgIAADkAAAAAAAAAAAAAAFYAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-05-13T02:21:47.086Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "DocumentIndex": 1,
              "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": "AgIAAE4AAAAAAAAAAAAowGsAAAAoAAAAAAAAAA==",
              "ViewState": "AgIAAFUAAAAAAAAAAAAtwGsAAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T01:45:08.835Z",
              "EditorCaption": ""
@@ -278,33 +305,33 @@
              "RelativeDocumentMoniker": "process\\TaskProcess.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs*",
              "RelativeToolTip": "process\\TaskProcess.cs*",
              "ViewState": "AgIAAAgHAAAAAAAAAAAgwKQEAAAOAAAAAAAAAA==",
              "ViewState": "AgIAAHwBAAAAAAAAAADgvzEBAABNAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T00:45:23.095Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "DocumentIndex": 8,
              "Title": "WmsController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeDocumentMoniker": "api\\WmsController.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeToolTip": "api\\WmsController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAiwB8AAAAmAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAAAiwB8AAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:08.931Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "DocumentIndex": 4,
              "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": "AgIAALADAAAAAAAAAAAswMADAAAYAAAAAAAAAA==",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeToolTip": "wms\\WMSModel.cs",
              "ViewState": "AgIAAHICAAAAAAAAAAAhwIcCAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:05.064Z",
              "EditorCaption": ""
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json
@@ -3,16 +3,56 @@
  "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\\monitor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\monitor.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\\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\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\deviceprocess.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}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\taskhelper.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\\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\\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\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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\\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\\util\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:util\\settings.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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\util\\loghelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:util\\loghelper.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\\ndcapi.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\ndcapi.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}",
@@ -23,26 +63,6 @@
      "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\\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\\taskhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\taskhelper.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\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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\\core\\monitor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\monitor.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\\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}"
    },
@@ -51,24 +71,12 @@
      "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\\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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\util\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:util\\settings.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\\moboxcontroller.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\\moboxcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\moboxcontroller.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}",
      "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\\process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -78,7 +86,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 18,
          "SelectedChildIndex": 11,
          "Children": [
            {
              "$type": "Bookmark",
@@ -90,20 +98,45 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "DocumentIndex": 11,
              "Title": "LogHelper.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\LogHelper.cs",
              "RelativeDocumentMoniker": "util\\LogHelper.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\LogHelper.cs",
              "RelativeToolTip": "util\\LogHelper.cs",
              "ViewState": "AgIAAEEAAAAAAAAAAAAiwFcAAAA/AQAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-29T07:39:06.007Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "NDCApi.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\NDCApi.cs",
              "RelativeDocumentMoniker": "dispatch\\NDCApi.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\NDCApi.cs",
              "RelativeToolTip": "dispatch\\NDCApi.cs",
              "ViewState": "AgIAAJAAAAAAAAAAAAAuwKcAAAAjAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-27T06:31:46.399Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "Settings.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\Settings.cs",
              "RelativeDocumentMoniker": "util\\Settings.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\Settings.cs",
              "RelativeToolTip": "util\\Settings.cs",
              "ViewState": "AgIAABsAAAAAAAAAAAAqwCkAAAA6AAAAAAAAAA==",
              "ViewState": "AgIAAB0AAAAAAAAAAAAhwDMAAAABAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-22T02:36:21.595Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "DocumentIndex": 17,
              "Title": "MoboxController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\MoboxController.cs",
              "RelativeDocumentMoniker": "api\\MoboxController.cs",
@@ -111,12 +144,11 @@
              "RelativeToolTip": "api\\MoboxController.cs",
              "ViewState": "AgIAACgAAAAAAAAAAAAAwDAAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-20T00:59:46.638Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-20T00:59:46.638Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "DocumentIndex": 18,
              "Title": "DingTalk.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\util\\DingTalk.cs",
              "RelativeDocumentMoniker": "util\\DingTalk.cs",
@@ -124,25 +156,24 @@
              "RelativeToolTip": "util\\DingTalk.cs",
              "ViewState": "AgIAAFQBAAAAAAAAAAAswGsBAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-19T06:20:50.133Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-19T06:20:50.133Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "DocumentIndex": 7,
              "Title": "Program.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
              "RelativeDocumentMoniker": "Program.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
              "RelativeToolTip": "Program.cs",
              "ViewState": "AgIAAEwAAAAAAAAAAAAgwF4AAAAxAAAAAAAAAA==",
              "ViewState": "AgIAAEcAAAAAAAAAAIAywF4AAAAxAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T08:30:12.949Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "DocumentIndex": 16,
              "Title": "WcsModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
              "RelativeDocumentMoniker": "wms\\WcsModel.cs",
@@ -150,12 +181,11 @@
              "RelativeToolTip": "wms\\WcsModel.cs",
              "ViewState": "AgIAAGMAAAAAAAAAAAAkwHAAAAAGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T06:24:55.849Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-14T06:24:55.849Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "DocumentIndex": 14,
              "Title": "ApiModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
              "RelativeDocumentMoniker": "api\\ApiModel.cs",
@@ -163,51 +193,50 @@
              "RelativeToolTip": "api\\ApiModel.cs",
              "ViewState": "AgIAAJAAAAAAAAAAAAAAwJsAAAAZAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T02:39:17.635Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-14T02:39:17.635Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "DocumentIndex": 4,
              "Title": "TaskHelper.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
              "RelativeDocumentMoniker": "wms\\TaskHelper.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
              "RelativeToolTip": "wms\\TaskHelper.cs",
              "ViewState": "AgIAAFIDAAAAAAAAAAAuwGkDAAAiAAAAAAAAAA==",
              "ViewState": "AgIAAB0AAAAAAAAAAAApwEAAAAAGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T02:35:57.671Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "DocumentIndex": 0,
              "Title": "Monitor.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
              "RelativeDocumentMoniker": "core\\Monitor.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
              "RelativeToolTip": "core\\Monitor.cs",
              "ViewState": "AgIAADsAAAAAAAAAAAAowDcAAABIAAAAAAAAAA==",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs*",
              "RelativeToolTip": "core\\Monitor.cs*",
              "ViewState": "AgIAAD8AAAAAAAAAAAAlwGoAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-14T02:11:55.478Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "DocumentIndex": 3,
              "Title": "DeviceProcess.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
              "RelativeDocumentMoniker": "process\\DeviceProcess.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
              "RelativeToolTip": "process\\DeviceProcess.cs",
              "ViewState": "AgIAANkAAAAAAAAAAAAYwO0AAAAoAAAAAAAAAA==",
              "ViewState": "AgIAABcBAAAAAAAAAAAgwO0AAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:22:54.115Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 13,
              "Title": "WcsTask.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
              "RelativeDocumentMoniker": "dispatch\\WcsTask.cs",
@@ -215,25 +244,24 @@
              "RelativeToolTip": "dispatch\\WcsTask.cs",
              "ViewState": "AgIAAC4CAAAAAAAAAAAQwEACAAAHAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:19:48.409Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-13T09:19:48.409Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "DocumentIndex": 6,
              "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": "AgIAADMAAAAAAAAAAAAwwEcAAAAnAAAAAAAAAA==",
              "ViewState": "AgIAAEwFAAAAAAAAAAAhwGUFAABjAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T09:13:15.283Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "DocumentIndex": 15,
              "Title": "AgvController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\AgvController.cs",
              "RelativeDocumentMoniker": "api\\AgvController.cs",
@@ -241,31 +269,30 @@
              "RelativeToolTip": "api\\AgvController.cs",
              "ViewState": "AgIAADwBAAAAAAAAAAAQwFEBAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T03:17:31.542Z",
              "EditorCaption": ""
              "WhenOpened": "2025-05-13T03:17:31.542Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "DocumentIndex": 10,
              "Title": "config.json",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json",
              "RelativeDocumentMoniker": "config\\config.json",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json",
              "RelativeToolTip": "config\\config.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAgAAAAAAAAAA==",
              "ViewState": "AgIAADkAAAAAAAAAAAAAAFYAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-05-13T02:21:47.086Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "DocumentIndex": 2,
              "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": "AgIAAE4AAAAAAAAAAAAowGsAAAAoAAAAAAAAAA==",
              "ViewState": "AgIAAFUAAAAAAAAAAAAtwGsAAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T01:45:08.835Z",
              "EditorCaption": ""
@@ -278,33 +305,33 @@
              "RelativeDocumentMoniker": "process\\TaskProcess.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
              "RelativeToolTip": "process\\TaskProcess.cs",
              "ViewState": "AgIAAAgHAAAAAAAAAAAgwKQEAAAOAAAAAAAAAA==",
              "ViewState": "AgIAAPUAAAAAAAAAAADgv5ABAAAuAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-13T00:45:23.095Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "DocumentIndex": 8,
              "Title": "WmsController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeDocumentMoniker": "api\\WmsController.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeToolTip": "api\\WmsController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAiwB8AAAAmAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAAAiwB8AAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:08.931Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "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": "AgIAABEEAAAAAAAAAAAYwB8EAAAjAAAAAAAAAA==",
              "ViewState": "AgIAAHICAAAAAAAAAAAhwIcCAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:05.064Z",
              "EditorCaption": ""
Program.cs
@@ -103,6 +103,8 @@
                //修改作业状态(根据作业对应任务的状态)
                tasks.Add(GetTask(Monitor.UpdateWorkState));
                //空托自动出库
                tasks.Add(GetTask(Monitor.ktAuto));
            }
config/config.json
@@ -84,6 +84,7 @@
      "code": "TN_ManualTaskSwitch"
    }
  ],
  "SafetyLocation": [
    {
      "name": "接驳位交互",
core/Monitor.cs
@@ -8,6 +8,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -89,5 +90,183 @@
        }
        /// <summary>
        /// 自动出库空托
        /// </summary>
        public static void ktAuto() {
            var db = new SqlHelper<object>().GetInstance();
            try
            {
                var ktTaskList = db.Queryable<MesKtTask>().Where(a => a.Status == "N" ).ToList();
                foreach (var kt in ktTaskList)
                {
                    if (DateTime.Now.Subtract(kt.CreateDate).TotalMinutes < 1)
                    {
                        continue;
                    }
                    var workFlow = TaskHelper.selectWorkFlowByType(kt.BUSI_TYPE, kt.TOOLS_TPYE);
                    if (workFlow == null)
                    {
                        LogHelper.Info($"空托出库任务下发失败,流程编号:{kt.BUSI_TYPE},工装类型{kt.TOOLS_TPYE},没找到对应作业流程", "空托出库");
                        throw new Exception($"BUSI_TYpe:{kt.BUSI_TYPE},没找到对应作业流程");
                    }
                    else
                    {
                        LogHelper.Info($"空托出库作业流程信息" + JsonConvert.SerializeObject(workFlow), "空托出库");
                    }
                    //出库任务
                    //接驳位
                    var connection = "";
                    //接驳位库区
                    var connectionArea = "";
                    //查找给定终点
                    var end = LocationHelper.GetLoc(kt.Location_To);
                    LogHelper.Info($"空托出库任务下发终点信息" + JsonConvert.SerializeObject(end), "空托出库");
                    if (end == null)
                    {
                        LogHelper.Info($"空托出库任务下发失败,终点:{kt.Location_To},没找到", "空托出库");
                        throw new Exception($"终点:{kt.Location_To},没找到");
                    }
                    //查找起点
                    List<Location> strrtList;
                    Location start = null;
                    if (!string.IsNullOrEmpty(workFlow.ZONECODE))
                    {
                        strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE);
                    }
                    else
                    {
                        strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                    }
                    //寻找立库区空托
                    start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA);
                    LogHelper.Info($"空托出库任务下发起点信息" + JsonConvert.SerializeObject(start), "空托出库");
                    if (start == null)
                    {
                        LogHelper.Info($"空托出库任务下发失败,起点库区{workFlow.STARTAREA},没找到起点", "空托出库");
                        throw new Exception($"起点库区{workFlow.STARTAREA},没找到起点");
                    }
                    //获取托盘码
                    var cntrCode = LocationHelper.GetLocCntrCode(start.S_CODE);
                    if (workFlow.SENDWCS == "Y")
                    {
                        //正式代码,调用接口寻找可用接驳位
                        var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
                        var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList);
                        foreach (var item in balanceConnectionList)
                        {
                            if (item.loc.N_CURRENT_NUM < 2)
                            {
                                connection = item.loc.S_CODE;
                                connectionArea = item.loc.S_AREA_Name;
                                LogHelper.Info($"空托出库任务下发寻找到可用接驳位{connection}", "空托出库");
                                break;
                            }
                        }
                        if (connection == "")
                        {
                            LogHelper.Info($"空托出库任务下发寻找接驳位失败", "Mes任空托出库务下发");
                            throw new Exception($"空托出库任务下发寻找接驳位失败");
                        }
                    }
                    //起点终点查找成功,创建作业
                    var taskType = int.Parse(workFlow.FLOWCODE);
                    var operation = new WmsWork
                    {
                        // 作业号
                        S_CODE = kt.task_no,
                        // 作业类型
                        N_TYPE = taskType,
                        // 作业类型
                        S_TYPE = workFlow.FLOWNAME,
                        // 起点货位
                        S_START_LOC = start.S_CODE,
                        // 起点库区编码
                        S_START_AREA = start.S_AREA_CODE,
                        //接驳位
                        CONNECTION = connection,
                        // 终点货位
                        S_END_LOC = end.S_CODE,
                        // 终点库区编码
                        S_END_AREA = end.S_AREA_CODE,
                        // 容器编码
                        S_CNTR_CODE = cntrCode,
                        // 作业定义名称
                        S_OP_DEF_NAME = workFlow.FLOWNAME,
                        //优先级
                        N_PRIORITY = kt.Priority,
                        //工装类型
                        TOOLSTYPE = kt.TOOLS_TPYE,
                        //起点库区名称
                        S_START_AREA_NAME = start.S_AREA_Name,
                        //起点库区名称
                        S_END_AREA_NAME = end.S_AREA_Name,
                        //起点库区名称
                        CONNECTION_AREA = connectionArea
                    };
                    //创建作业
                    if (WMSHelper.CreateWmsWork(operation) && TaskHelper.ChangeMesKtTask(kt))
                    {
                        LogHelper.Info($"空托出库作业创建成功{operation.S_CODE}", "空托出库");
                    }
                    else
                    {
                        LogHelper.Info($"空托出库任务下发创建作业失败", "空托出库");
                        throw new Exception($"空托出库任务下发创建作业失败");
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Info($"空托出库异常信息" + ex.Message, "空托出库");
            }
        }
    }
}
process/TaskProcess.cs
@@ -59,7 +59,7 @@
            else
            {
                Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}");
                LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,起点解绑容器{mst.S_CNTR_CODE}");
                LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}");
                LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList());
            }
@@ -227,6 +227,8 @@
                        //查找给定终点
                        var end = LocationHelper.GetLoc(kt.Location_To);
                        if (end.S_LOCK_STATE=="无" && end.N_CURRENT_NUM==0)
                        {
                        //LogHelper.Info($"当前任务{task.S_CODE}改道终点信息" + JsonConvert.SerializeObject(end), "改道安全交互");
                        //if (end == null || end.S_LOCK_STATE != "无")
                        //{
@@ -249,6 +251,8 @@
                        NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                        NDCApi.ChangeOrderParam(task.S_CODE, 4, "0");
                        return;
                        }
                    }
                }
@@ -297,9 +301,9 @@
                            {
                                flag = false;
                                LogHelper.Info($"当前任务{task.S_CODE}接驳位{con.S_CODE}可用,不需要改道,直接修改参数6为1,4为0", "改道安全交互");
                                LogHelper.Info($"当前任务{task.S_CODE}接驳位{con.S_CODE}可用,不需要改道,直接修改参数6为1,4为1024", "改道安全交互");
                                NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                                NDCApi.ChangeOrderParam(task.S_CODE, 4, "0");
                                NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024");
                                break;
                            }
                        }
@@ -446,7 +450,25 @@
                ndcParme.Add(new param() { name = "From", value = start.ToString() });
                ndcParme.Add(new param() { name = "To", value = end.ToString() });
                ndcParme.Add(new param() { name = "FUNC", value = "0" });
                var work = TaskHelper.GetWmsWork(mst.S_OP_CODE);
                if (work==null)
                {
                    LogHelper.Info($"推送任务{mst.S_CODE},没找到作业:{mst.S_OP_CODE}", "NDC");
                }
                if (string.IsNullOrEmpty(work.CONNECTION))
                {
                ndcParme.Add(new param() { name = "DATA", value = "0" });
                }
                else {
                    ndcParme.Add(new param() { name = "DATA", value = "768" });
                }
                ndcParme.Add(new param() { name = "Ctype", value = "0" });
@@ -1094,7 +1116,7 @@
                    result.success = false;
                    return result;
                }
                var endTask = TaskHelper.GetTaskByStartLoc(zd);
                var endTask = TaskHelper.GetTaskByEndLoc(zd);
                if (endTask != null)
                {
                    result.errMsg = "终点有执行中任务";
@@ -1261,9 +1283,6 @@
                        throw new Exception($"托盘{model.TOOLS_NO}已经创建作业,请勿重复申请");
                    }
                }
                //托盘明细数量
@@ -1581,11 +1600,38 @@
                    LogHelper.Info($"ZCSendTask出库任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                    if (end == null || end.S_LOCK_STATE != "无")
                    if (end == null)
                    {
                        LogHelper.Info($"ZCSendTask出库任务下发失败,终点:{model.Location_To},没找到或有锁", "Mes任务下发");
                        throw new Exception($"终点:{model.Location_To},没找到或有锁");
                        LogHelper.Info($"ZCSendTask出库任务下发失败,终点:{model.Location_To},没找到", "Mes任务下发");
                        throw new Exception($"终点:{model.Location_To},没找到");
                    }
                    var unlimitedLocation = TaskHelper.GetMesKtLoc();
                    //标记终点货位是否可以无限制下任务
                    var endLocFlag = true;
                    foreach (var item in unlimitedLocation)
                    {
                        //出库终点货位在配置里 可以无限制下任务
                        if (item.Loc.Contains(model.Location_To))
                        {
                            endLocFlag = false;
                            break;
                        }
                    }
                    if (endLocFlag)
                    {
                        var endTask = TaskHelper.GetTaskByEndLoc(model.Location_To);
                        if (endTask != null)
                        {
                            LogHelper.Info($"ZCSendTask出库任务下发失败,终点:{model.Location_To}有任务执行中,任务号:{endTask.S_CODE}", "Mes任务下发");
                            throw new Exception($"终点:{model.Location_To}有任务执行中,任务号:{endTask.S_CODE}");
                        }
                    }
                    //查找起点
@@ -1634,36 +1680,36 @@
                    }
                    else if (workFlow.FLOWCODE == "7") {
                        //寻找立库区空托
                        start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA);
                        if (start == null)
                        {
                            strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                            var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA);
                            LogHelper.Info($"ZCSendTask空托出库任务没找到起点,校验是否有库存但是设备报警{itemFlag}", "Mes任务下发");
                        //start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA);
                        //if (start == null)
                        //{
                        //    strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                        //    var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA);
                        //    LogHelper.Info($"ZCSendTask空托出库任务没找到起点,校验是否有库存但是设备报警{itemFlag}", "Mes任务下发");
                            if (itemFlag)
                            {
                                result.errMsg = "空托出库作业有库存但设备报警";
                                result.errCode = 2001;
                                result.success = true;
                                return result;
                            }
                        }
                    }
                        //    if (itemFlag)
                        //    {
                        //        result.errMsg = "空托出库作业有库存但设备报警";
                        //        result.errCode = 2001;
                        //        result.success = true;
                        //        return result;
                        //    }
                        //}
                        //空托出先缓存到空托表
                    LogHelper.Info($"ZCSendTask出库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发");
                        //先查询有没有同终点缓存的记录
                    if (workFlow.FLOWCODE == "7" && start == null)
                    {
                        //空托出没找到起点,先缓存到空托表
                        //先查询有没有同终点未缓存的记录
                        if (endLocFlag) {
                        var ktTask = TaskHelper.GetMesKtTask(end.S_CODE);
                        if (ktTask != null) {
                            if (ktTask != null)
                            {
                                LogHelper.Info($"ZCSendTask空托出缓存失败,终点{end.S_CODE}已有缓存", "Mes任务下发");
                            throw new Exception($"ZCSendTask空托出缓存失败,终点{end.S_CODE}已有缓存");
                        }
                        }
                        MesKtTask req = new MesKtTask()
                        {
@@ -1672,7 +1718,8 @@
                            Priority = model.Priority,
                            CreateDate = DateTime.Now,
                            BUSI_TYPE = model.BUSI_TYPE,
                            TOOLS_TPYE = model.TOOLS_TPYE,
                            TOOLS_TPYE = TOOLSTYPE,
                            task_no=model.task_no,
                            Status = "N"
                        };
@@ -1682,6 +1729,10 @@
                            result.errMsg = "空托出库缓存成功";
                            result.errCode = 0;
                            result.success = true;
                            mesRes.errCode = result.errCode;
                            mesRes.errMsg = result.errMsg;
                            //保存mes记录
                            CreatMesRes(mesRes);
                            return result;
                        }
                        else
@@ -1689,17 +1740,17 @@
                            LogHelper.Info($"ZCSendTask空托出缓存失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask空托出缓存失败");
                        }
                    }
                    else {
                        LogHelper.Info($"ZCSendTask出库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发");
                        if (start == null)
                        {
                            LogHelper.Info($"ZCSendTask出库任务下发失败,起点库区{workFlow.STARTAREA},没找到起点", "Mes任务下发");
                            throw new Exception($"起点库区{workFlow.STARTAREA},没找到起点");
                        }
                    }
                    
util/LogHelper.cs
@@ -85,7 +85,7 @@
        /// 通过配置文件配置日志
        /// </summary>
        static LogFactory() {
            var loggerNames = new List<string>() { "ModBus", "API", "HosttoagvTask", "任务","强制完成","点到点","取消", "NDC", "物料绑定解绑", "修改物料", "立库", "报警上报", "Mes任务下发", "接驳位", "Wcs任务执行通知 ", "立库下发任务", "立库取消任务", "巷道可用上报", "通知确认", "agv执行通知", "安全交互", "放货有货", "胎面交互", "改道安全交互", "上下架记录", "Wcs下发任务", "门交互", "HosttoagvCar", "钉钉通知" };
            var loggerNames = new List<string>() { "ModBus", "API", "HosttoagvTask", "任务","强制完成","点到点","取消", "NDC", "物料绑定解绑", "修改物料", "立库", "报警上报", "Mes任务下发", "接驳位", "Wcs任务执行通知 ", "立库下发任务", "立库取消任务", "巷道可用上报", "通知确认", "agv执行通知", "安全交互", "放货有货", "胎面交互", "改道安全交互", "上下架记录", "Wcs下发任务", "门交互", "HosttoagvCar", "钉钉通知", "空托出库" };
            LogManager.Configuration = DefaultConfig(loggerNames);
        }
        public static ILogger CreateLogger(string name) {
util/Settings.cs
@@ -32,17 +32,28 @@
        /// </summary>
        public static string MesGetItemApi { get; set; }
        
        /// <summary>
        /// 配置
        /// </summary>
        public static List<deviceInfo> deviceInfos { get; set; }
        /// <summary>
        /// 胎面设备配置
        /// </summary>
        public static List<TmDeviceInfo> TmDeviceInfos { get; set; }
        public static List<areaInfo> areaInfos { get; set; }
        /// <summary>
        /// 优先级配置
        /// </summary>
         public static OutMinutePriority outMinutePriority { get; set; }
        /// <summary>
        /// NDC地址
        /// </summary>
        public static string NDCApiUrl { get; set; }
        
@@ -105,6 +116,10 @@
                            {
                                outMinutePriority = JsonConvert.DeserializeObject<OutMinutePriority> (keyValue.Value.ToString());
                            }
                            //if (keyValue.Name == "DeviceInfo")
                            //{
                            //    deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());
wms/TaskHelper.cs
@@ -58,6 +58,13 @@
        }
        internal static WmsWork GetWmsWork(string no) {
            var db = new SqlHelper<WmsWork>().GetInstance();
            return db.Queryable<WmsWork>().Where(it => it.S_CODE == no).First();
        }
        internal static WMSTask GetTaskByCntrCode(string cntrCode)
        {
            var db = new SqlHelper<WMSTask>().GetInstance();
@@ -877,8 +884,26 @@
                var db = new SqlHelper<object>().GetInstance();
                return db.Queryable<MesKtTask>().Where(a => a.Location_To==end && a.Status=="N").First();
        }
        internal static bool ChangeMesKtTask(MesKtTask kt)
        {
            var db = new SqlHelper<object>().GetInstance();
            kt.Status = "Y";
            return db.Updateable(kt).UpdateColumns(it => new {
                it.Status
            }).ExecuteCommand()>0;
        }
        internal static List<UnlimitedLoc> GetMesKtLoc()
        {
            var db = new SqlHelper<object>().GetInstance();
            return db.Queryable<UnlimitedLoc>().ToList();
        }
    }
}
wms/WMSModel.cs
@@ -1118,6 +1118,12 @@
        /// 空托任务是否创建  Y/N   默认N
        /// </summary>
        public string Status { get; set; }
        /// <summary>
        /// 任务号
        /// </summary>
        public string task_no { get; set; }
    }
@@ -1495,5 +1501,13 @@
        public List<ZoneLoc> ZoneLocs { get; set; }
    }
    /// <summary>
    /// 出库终点无限制表
    /// </summary>
    [ST("出库终点无限制表")]
    public class UnlimitedLoc : BaseModel {
        public string Loc { get; set; }
    }
}