feat: 新增异常任务处理按钮
fix: 修复任务取消bug,按照分组取消。
refactor: 重构日志为文本,减少数据库压力
已添加1个文件
已修改14个文件
22860 ■■■■■ 文件已修改
项目代码/WCSClient/package-lock.json 20849 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSClient/src/extension/taskinfo/task.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/.vs/WIDESEAWCS_Server/v18/DocumentLayout.backup.json 755 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json 755 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_ISystemServices/ISys_LogService.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/Log/任务取消接收/2026-03-12/任务取消接口260312.txt 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/Program.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_SystemServices/Sys_LogService.cs 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs 159 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WCSClient/package-lock.json
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCSClient/src/extension/taskinfo/task.js
@@ -65,6 +65,39 @@
          })
        }
      }
      // æ·»åŠ ä»»åŠ¡æ¢å¤æŒ‰é’®åŠŸèƒ½
      let TaskRecoveryBtn = this.buttons.find((x) => x.value == "ExceptionTask");
      if (TaskRecoveryBtn) {
        TaskRecoveryBtn.onClick = function () {
          let rows = this.$refs.table.getSelected();
          if (rows.length == 0) return this.$error("请选择数据!");
          if (rows.length > 1) {
            return this.$error("一次只能操作一条数据!");
          }
          this.$confirm("确定要恢复该任务吗?", "提示", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          })
            .then(() => {
              const taskNum = rows[0].taskNum;
              this.http
                .post(
                  `api/Task/ResetAllExceptionTask?taskNum=${taskNum}`,
                  null,
                  "任务恢复中",
                )
                .then((x) => {
                  if (!x.status) return this.$message.error(x.message);
                  this.$message.success("任务恢复成功");
                  this.$refs.table.refresh(); // å»ºè®®æ·»åŠ åˆ·æ–°è¡¨æ ¼
                });
            })
            .catch(() => {
              this.$message.info("已取消恢复操作");
            });
        };
      }
      let TaskCompletedBtn = this.buttons.find(
        (x) => x.value == "TaskCompleted"
      );
ÏîÄ¿´úÂë/WCSServices/.vs/WIDESEAWCS_Server/v18/DocumentLayout.backup.json
@@ -3,64 +3,20 @@
  "WorkspaceRootPath": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_systemservices\\sys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agverrorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agverrorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinejob2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinejob2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\task_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\task_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agvextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\stationtypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\stationtypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\invokeagvservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\invokeagvservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -71,6 +27,82 @@
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_systemservices\\sys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agvextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_dto\\agv\\agvupdatedto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\agv\\agvupdatedto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_isystemservices\\isys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\system\\sys_logcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_logcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\taskservice_operate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice_operate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\filter\\customauthorizefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customauthorizefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\hostedservice\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\hostedservice\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\task_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\task_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\webapicontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\webapicontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\ptlapicontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\ptlapicontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinejob2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinejob2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E00\u671F\u7EBF\u4F53\\conveyorlinejob1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E00\u671F\u7EBF\u4F53\\conveyorlinejob1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\wwwroot\\js\\jquery-3.3.1.min.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wwwroot\\js\\jquery-3.3.1.min.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
@@ -79,8 +111,44 @@
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\writelog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\writelog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\tasktypegroup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypegroup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\sequenceenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\sequenceenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\dbnames\\w_mddbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\dbnames\\w_mddbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agverrorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agverrorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\task_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\task_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\stationtypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\stationtypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -90,7 +158,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 4,
          "SelectedChildIndex": 11,
          "Children": [
            {
              "$type": "Bookmark",
@@ -102,6 +170,14 @@
            },
            {
              "$type": "Bookmark",
              "Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
            },
            {
@@ -109,118 +185,25 @@
              "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "Sys_LogService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "ViewState": "AgIAANIBAAAAAAAAAAASwOIBAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:17:08.144Z",
              "EditorCaption": ""
              "$type": "Bookmark",
              "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "AGVController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ViewState": "AgIAADcAAAAAAAAAAAAMwFAAAAAuAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:10:14.655Z",
              "EditorCaption": ""
              "$type": "Bookmark",
              "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "TaskController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAAAYAAAAAAAAAAADwv60AAAAoAAAAAAAAAA==",
              "Title": "ITaskService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAAKAAAAAAAAAAAAAhwLIAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T03:49:18.524Z",
              "WhenOpened": "2026-03-12T06:27:17.22Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "TaskExecuteDetailController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:23:04.759Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "ConveyorLineJob2.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "ViewState": "AgIAAG4AAAAAAAAAAAAWwIkAAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T03:49:45.271Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "AGVErrorJob.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "ViewState": "AgIAABQAAAAAAAAAAAAAwC0AAAA0AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:08:40.07Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "AGVJob.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:28.566Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "Task_HtyController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:23:07.266Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "StationTypeEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\StationTypeEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\StationTypeEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\StationTypeEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\StationTypeEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:16:46.63Z"
            },
            {
              "$type": "Document",
@@ -230,49 +213,289 @@
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVExtend.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVExtend.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVExtend.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAHMAAAAQAAAAAAAAAA==",
              "ViewState": "AgIAAGQAAAAAAAAAAAAQwHgAAABfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:51.002Z"
              "WhenOpened": "2026-02-03T03:31:51.002Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "LocationStatusEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:16:43.429Z"
              "DocumentIndex": 5,
              "Title": "appsettings.json",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAZAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2026-02-02T01:52:23.347Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "DocumentIndex": 0,
              "Title": "TaskService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAACgEAAAAAAAAAADgv6oDAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T05:57:11.009Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "TaskController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAALMAAAAAAAAAAAAawMMAAAAlAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T03:49:18.524Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "InvokeAGVService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAFYAAAAZAAAAAAAAAA==",
              "ViewState": "AgIAANUAAAAAAAAAAAAAAOQAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:08:50.503Z"
              "WhenOpened": "2026-02-01T04:08:50.503Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "ConveyorLineDBName.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 6,
              "Title": "AGVController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ViewState": "AgIAAIsAAAAAAAAAAAAIwJ4AAABfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:36.124Z"
              "WhenOpened": "2026-02-01T04:10:14.655Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "Sys_LogService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "ViewState": "AgIAAJEAAAAAAAAAAAAAAJgAAAAuAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:17:08.144Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "Program.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAAGMAAAAAAAAAAADwv4AAAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-02T01:52:35.013Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "AgvUpdateDTO.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_DTO\\Agv\\AgvUpdateDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Agv\\AgvUpdateDTO.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_DTO\\Agv\\AgvUpdateDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\Agv\\AgvUpdateDTO.cs",
              "ViewState": "AgIAAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-10T09:10:02.981Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "index.html",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\index.html",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\index.html",
              "RelativeToolTip": "WIDESEAWCS_Server\\index.html",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
              "WhenOpened": "2026-03-11T06:35:19.439Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "Sys_LogController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\System\\Sys_LogController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_LogController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\System\\Sys_LogController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_LogController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAlAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T03:10:12.097Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "ISys_LogService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T03:12:26.097Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "TaskService_Operate.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService_Operate.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService_Operate.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService_Operate.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService_Operate.cs",
              "ViewState": "AgIAAC4AAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:16:16.852Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "AGVJob.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "ViewState": "AgIAAAwAAAAAAAAAAADwvyYAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:28.566Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "CustomAuthorizeFilter.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:16:31.85Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "CustomProfile.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:16:27.4Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "WebSocketSetup.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:16:24.435Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "Task_HtyService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\Task_HtyService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\Task_HtyService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\Task_HtyService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\Task_HtyService.cs",
              "ViewState": "AgIAAAYAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:14:36.628Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "TaskExecuteDetailService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:14:39.303Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "PTLAPIController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\PTLAPIController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\PTLAPIController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\PTLAPIController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\PTLAPIController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:10:04.487Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "ConveyorLineJob2.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAAAABkAAAAzAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T03:49:45.271Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "ConveyorLineJob1.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E00\u671F\u7EBF\u4F53\\ConveyorLineJob1.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E00\u671F\u7EBF\u4F53\\ConveyorLineJob1.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E00\u671F\u7EBF\u4F53\\ConveyorLineJob1.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E00\u671F\u7EBF\u4F53\\ConveyorLineJob1.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:05:50.802Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "WebAPIController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\WebAPIController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WebAPIController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\WebAPIController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WebAPIController.cs",
              "ViewState": "AgIAABsAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-10T08:45:07.233Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 28,
              "Title": "TaskTypeEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
@@ -284,55 +507,43 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "TaskService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAB4DAAAAAAAAAAAWwP8CAAB7AAAAAAAAAA==",
              "DocumentIndex": 27,
              "Title": "TaskTypeGroup.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeGroup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeGroup.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeGroup.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeGroup.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T05:57:11.009Z"
              "WhenOpened": "2026-03-10T09:09:47.077Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "Program.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAAGwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 24,
              "Title": "jquery-3.3.1.min.js",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\wwwroot\\js\\jquery-3.3.1.min.js",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\wwwroot\\js\\jquery-3.3.1.min.js",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\wwwroot\\js\\jquery-3.3.1.min.js",
              "RelativeToolTip": "WIDESEAWCS_Server\\wwwroot\\js\\jquery-3.3.1.min.js",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAABdJAEAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
              "WhenOpened": "2026-03-10T09:10:06.801Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "Title": "SequenceEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\SequenceEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\SequenceEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\SequenceEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\SequenceEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-02T01:52:35.013Z"
              "WhenOpened": "2026-03-10T09:09:41.428Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:10:43.54Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "appsettings.json",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2026-02-02T01:52:23.347Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "DocumentIndex": 26,
              "Title": "TaskEnumHelper.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
@@ -344,25 +555,99 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "WriteLog.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\WriteLog.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\WriteLog.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\WriteLog.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\WriteLog.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAZAAAAAAAAAA==",
              "DocumentIndex": 25,
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ViewState": "AgIAADIAAAAAAAAAAAApwEsAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T09:40:39.658Z"
            }
          ]
        },
        {
          "DockedWidth": 1341,
          "SelectedChildIndex": -1,
          "Children": [
              "WhenOpened": "2026-02-01T04:10:43.54Z"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{a80febb4-e7e0-4147-b476-21aaf2453969}"
              "$type": "Document",
              "DocumentIndex": 30,
              "Title": "W_MDDBName.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\DBNames\\W_MDDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\DBNames\\W_MDDBName.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\DBNames\\W_MDDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\DBNames\\W_MDDBName.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-10T08:44:10.608Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 32,
              "Title": "AGVErrorJob.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "ViewState": "AgIAABQAAAAAAAAAAAAAwC0AAAA0AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:08:40.07Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 34,
              "Title": "TaskExecuteDetailController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:23:04.759Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 31,
              "Title": "ConveyorLineDBName.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:36.124Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 33,
              "Title": "Task_HtyController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:23:07.266Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 35,
              "Title": "StationTypeEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\StationTypeEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\StationTypeEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\StationTypeEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\StationTypeEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:16:46.63Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 36,
              "Title": "LocationStatusEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:16:43.429Z"
            }
          ]
        }
ÏîÄ¿´úÂë/WCSServices/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json
@@ -3,64 +3,20 @@
  "WorkspaceRootPath": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_systemservices\\sys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agverrorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agverrorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinejob2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinejob2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\task_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\task_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agvextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\stationtypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\stationtypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\invokeagvservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\invokeagvservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -71,6 +27,82 @@
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_systemservices\\sys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agvextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_dto\\agv\\agvupdatedto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\agv\\agvupdatedto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_isystemservices\\isys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_logservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\system\\sys_logcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_logcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\taskservice_operate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice_operate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\filter\\customauthorizefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customauthorizefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\hostedservice\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\hostedservice\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\task_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\task_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\webapicontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\webapicontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\ptlapicontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\ptlapicontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinejob2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinejob2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E00\u671F\u7EBF\u4F53\\conveyorlinejob1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E00\u671F\u7EBF\u4F53\\conveyorlinejob1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\wwwroot\\js\\jquery-3.3.1.min.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wwwroot\\js\\jquery-3.3.1.min.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
@@ -79,8 +111,44 @@
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_taskinfoservice\\writelog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\writelog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\tasktypegroup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypegroup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\taskenum\\sequenceenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\sequenceenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\dbnames\\w_mddbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\dbnames\\w_mddbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u4E8C\u671F\u7EBF\u4F53\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_tasks\\agv\\agverrorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agverrorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\task_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\task_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\stationtypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\stationtypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\desktop\\haerbingctu28\\\u9879\u76EE\u4EE3\u7801\\wcsservices\\wideseawcs_common\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -90,7 +158,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 4,
          "SelectedChildIndex": 11,
          "Children": [
            {
              "$type": "Bookmark",
@@ -102,6 +170,14 @@
            },
            {
              "$type": "Bookmark",
              "Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
            },
            {
@@ -109,118 +185,25 @@
              "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "Sys_LogService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "ViewState": "AgIAANIBAAAAAAAAAAASwOIBAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:17:08.144Z",
              "EditorCaption": ""
              "$type": "Bookmark",
              "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "AGVController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ViewState": "AgIAADcAAAAAAAAAAAAMwFAAAAAuAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:10:14.655Z",
              "EditorCaption": ""
              "$type": "Bookmark",
              "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "TaskController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAAAYAAAAAAAAAAADwv60AAAAoAAAAAAAAAA==",
              "Title": "ITaskService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAAKAAAAAAAAAAAAAhwLIAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T03:49:18.524Z",
              "WhenOpened": "2026-03-12T06:27:17.22Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "TaskExecuteDetailController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:23:04.759Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "ConveyorLineJob2.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "ViewState": "AgIAAG4AAAAAAAAAAAAWwIkAAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T03:49:45.271Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "AGVErrorJob.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "ViewState": "AgIAABQAAAAAAAAAAAAAwC0AAAA0AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:08:40.07Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "AGVJob.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:28.566Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "Task_HtyController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:23:07.266Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "StationTypeEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\StationTypeEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\StationTypeEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\StationTypeEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\StationTypeEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:16:46.63Z"
            },
            {
              "$type": "Document",
@@ -230,49 +213,289 @@
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVExtend.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVExtend.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVExtend.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAHMAAAAQAAAAAAAAAA==",
              "ViewState": "AgIAAGQAAAAAAAAAAAAQwHgAAABfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:51.002Z"
              "WhenOpened": "2026-02-03T03:31:51.002Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "LocationStatusEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:16:43.429Z"
              "DocumentIndex": 5,
              "Title": "appsettings.json",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAZAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2026-02-02T01:52:23.347Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "DocumentIndex": 0,
              "Title": "TaskService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAAcEAAAAAAAAAADgv6oDAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T05:57:11.009Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "TaskController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAALMAAAAAAAAAAAAawMMAAAAlAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T03:49:18.524Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "InvokeAGVService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAFYAAAAZAAAAAAAAAA==",
              "ViewState": "AgIAANUAAAAAAAAAAAAAAOQAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:08:50.503Z"
              "WhenOpened": "2026-02-01T04:08:50.503Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "ConveyorLineDBName.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 6,
              "Title": "AGVController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ViewState": "AgIAAIsAAAAAAAAAAAAIwJ4AAABfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:36.124Z"
              "WhenOpened": "2026-02-01T04:10:14.655Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "Sys_LogService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_LogService.cs",
              "ViewState": "AgIAAJEAAAAAAAAAAAAAAJgAAAAuAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:17:08.144Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "Program.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAAGMAAAAAAAAAAADwv4AAAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-02T01:52:35.013Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "AgvUpdateDTO.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_DTO\\Agv\\AgvUpdateDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Agv\\AgvUpdateDTO.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_DTO\\Agv\\AgvUpdateDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\Agv\\AgvUpdateDTO.cs",
              "ViewState": "AgIAAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-10T09:10:02.981Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "index.html",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\index.html",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\index.html",
              "RelativeToolTip": "WIDESEAWCS_Server\\index.html",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
              "WhenOpened": "2026-03-11T06:35:19.439Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "Sys_LogController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\System\\Sys_LogController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_LogController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\System\\Sys_LogController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_LogController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAlAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T03:10:12.097Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "ISys_LogService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T03:12:26.097Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "TaskService_Operate.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService_Operate.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService_Operate.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService_Operate.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService_Operate.cs",
              "ViewState": "AgIAAC4AAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:16:16.852Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "AGVJob.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVJob.cs",
              "ViewState": "AgIAAAwAAAAAAAAAAADwvyYAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:28.566Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "CustomAuthorizeFilter.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:16:31.85Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "CustomProfile.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:16:27.4Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "WebSocketSetup.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:16:24.435Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "Task_HtyService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\Task_HtyService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\Task_HtyService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\Task_HtyService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\Task_HtyService.cs",
              "ViewState": "AgIAAAYAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:14:36.628Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "TaskExecuteDetailService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:14:39.303Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "PTLAPIController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\PTLAPIController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\PTLAPIController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\PTLAPIController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\PTLAPIController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:10:04.487Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "ConveyorLineJob2.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineJob2.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAAAABkAAAAzAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T03:49:45.271Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "ConveyorLineJob1.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E00\u671F\u7EBF\u4F53\\ConveyorLineJob1.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E00\u671F\u7EBF\u4F53\\ConveyorLineJob1.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E00\u671F\u7EBF\u4F53\\ConveyorLineJob1.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E00\u671F\u7EBF\u4F53\\ConveyorLineJob1.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-11T01:05:50.802Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "WebAPIController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\WebAPIController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WebAPIController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\WebAPIController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WebAPIController.cs",
              "ViewState": "AgIAABsAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-10T08:45:07.233Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 28,
              "Title": "TaskTypeEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
@@ -284,55 +507,43 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "TaskService.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAB4DAAAAAAAAAAAWwP8CAAB7AAAAAAAAAA==",
              "DocumentIndex": 27,
              "Title": "TaskTypeGroup.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeGroup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeGroup.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeGroup.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeGroup.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T05:57:11.009Z"
              "WhenOpened": "2026-03-10T09:09:47.077Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "Program.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAAGwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 24,
              "Title": "jquery-3.3.1.min.js",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\wwwroot\\js\\jquery-3.3.1.min.js",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\wwwroot\\js\\jquery-3.3.1.min.js",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\wwwroot\\js\\jquery-3.3.1.min.js",
              "RelativeToolTip": "WIDESEAWCS_Server\\wwwroot\\js\\jquery-3.3.1.min.js",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAABdJAEAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
              "WhenOpened": "2026-03-10T09:10:06.801Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "Title": "SequenceEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\SequenceEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\SequenceEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\SequenceEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\SequenceEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-02T01:52:35.013Z"
              "WhenOpened": "2026-03-10T09:09:41.428Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:10:43.54Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "appsettings.json",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2026-02-02T01:52:23.347Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "DocumentIndex": 26,
              "Title": "TaskEnumHelper.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
@@ -344,25 +555,99 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "WriteLog.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\WriteLog.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\WriteLog.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_TaskInfoService\\WriteLog.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\WriteLog.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAZAAAAAAAAAA==",
              "DocumentIndex": 25,
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ViewState": "AgIAADIAAAAAAAAAAAApwEsAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T09:40:39.658Z"
            }
          ]
        },
        {
          "DockedWidth": 1341,
          "SelectedChildIndex": -1,
          "Children": [
              "WhenOpened": "2026-02-01T04:10:43.54Z"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{a80febb4-e7e0-4147-b476-21aaf2453969}"
              "$type": "Document",
              "DocumentIndex": 30,
              "Title": "W_MDDBName.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\DBNames\\W_MDDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\DBNames\\W_MDDBName.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\DBNames\\W_MDDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\DBNames\\W_MDDBName.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-10T08:44:10.608Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 32,
              "Title": "AGVErrorJob.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVErrorJob.cs",
              "ViewState": "AgIAABQAAAAAAAAAAAAAwC0AAAA0AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-01T04:08:40.07Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 34,
              "Title": "TaskExecuteDetailController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:23:04.759Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 31,
              "Title": "ConveyorLineDBName.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\\u4E8C\u671F\u7EBF\u4F53\\ConveyorLineDBName.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T03:31:36.124Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 33,
              "Title": "Task_HtyController.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\Task_HtyController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:23:07.266Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 35,
              "Title": "StationTypeEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\StationTypeEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\StationTypeEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\StationTypeEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\StationTypeEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:16:46.63Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 36,
              "Title": "LocationStatusEnum.cs",
              "DocumentMoniker": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "ToolTip": "F:\\Desktop\\HaErBingCTU28\\\u9879\u76EE\u4EE3\u7801\\WCSServices\\WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\LocationStatusEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-02-03T12:16:43.429Z"
            }
          ]
        }
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_ISystemServices/ISys_LogService.cs
@@ -1,17 +1,73 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_ISystemServices
{
    public interface ISys_LogService : IService<Sys_Log>
    {
        void ScheduleDatabaseMaintenance();
        void DeleteOldLogs();
        void CheckAndManageFileSize();
        WebResponseContent GetLogList();
        WebResponseContent GetLogData(GetLogParm parm);
    }
    #region å®žä½“ç±»
    public class DirInfo
    {
        /// <summary>
        /// å½“前路径
        /// </summary>
        public string dirPath { get; set; }
        /// <summary>
        /// å½“前名称
        /// </summary>
        public string dirName { get; set; }
        /// <summary>
        /// å­æ–‡ä»¶
        /// </summary>
        public List<FileDataInfo> files { get; set; }
        /// <summary>
        /// å­æ–‡ä»¶å¤¹
        /// </summary>
        public List<DirInfo> dirs { get; set; }
    }
    public class FileDataInfo
    {
        public string filePath { get; set; }
        public string fileName { get; set; }
        public long fileSize { get; set; }
    }
    public class GetLogParm
    {
        /// <summary>
        /// æ–‡ä»¶åœ°å€
        /// </summary>
        public string path;
        /// <summary>
        /// è¯»å–进度
        /// </summary>
        public float percent;
        /// <summary>
        /// æœ€å¤§è¯»å–大小
        /// </summary>
        public double maxsize_KB = 20;
        /// <summary>
        /// å½“前起始位置
        /// </summary>
        public long topStartPos = 0;
    }
    #endregion
}
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs
@@ -3,6 +3,7 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
using Org.BouncyCastle.Asn1.Ocsp;
using System.Text;
using System.Text.RegularExpressions;
using WIDESEA_DTO.Agv;
@@ -25,6 +26,7 @@
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_TaskInfoService;
using WIDESEAWCS_Tasks;
using WIDESEAWCS_Tasks.DBNames;
using static Dm.net.buffer.ByteArrayBuffer;
@@ -57,6 +59,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                WriteLog.Write_Log("AGV任务更新接口", "AGV任务更新接口", "更新任务", $"任务:{agvUpdateDTO.ToJson()}");
                if (agvUpdateDTO.Message != null && agvUpdateDTO.Message == "ROBOT_ERROR-haiUnknownError")
                {
                    var task1 = _taskRepository.QueryFirst(x => (agvUpdateDTO.MissionCode ?? "") == x.GroupId);
@@ -153,6 +156,7 @@
            AgvTaskReqContent content = new AgvTaskReqContent();
            try
            {
                WriteLog.Write_Log("AGV任务请求", "AGV任务请求接口", "任务", $"任务:{agvTaskRequestDTO.ToJson()}");
                //获取任务
                Dt_Task? taskExist = _taskRepository.QueryFirst(x=>x.PalletCode==agvTaskRequestDTO.ContainerCode) ?? throw new Exception($"未找到料箱{agvTaskRequestDTO.ContainerCode}任务");
                //获取站台
@@ -189,6 +193,7 @@
            AgvTaskReqContent content = new AgvTaskReqContent();
            try
            {
                WriteLog.Write_Log("AGV作业完成", "AGV作业完成接口", "任务", $"任务:{agvTaskRequestDTO.ToJson()}");
                //获取站台
                Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == agvTaskRequestDTO.PositionId) ?? throw new Exception($"未找到{agvTaskRequestDTO.PositionId}站台位置");
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode) ?? throw new Exception($"未找到对应设备{stationManger.StationDeviceCode}");
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs
@@ -1,8 +1,11 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_SystemServices;
namespace WIDESEAWCS_Server.Controllers.System
{
@@ -13,5 +16,16 @@
        public Sys_LogController(ISys_LogService service) : base(service)
        {
        }
        [HttpPost, Route("GetLogList"), AllowAnonymous]
        public WebResponseContent GetLogList()
        {
            return Service.GetLogList();
        }
        [HttpPost, Route("GetLogData"), AllowAnonymous]
        public WebResponseContent GetLogData([FromBody] GetLogParm parm)
        {
            return Service.GetLogData(parm);
        }
    }
}
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Text;
using WIDESEA_External.Model;
using WIDESEAWCS_Common.TaskEnum;
@@ -88,6 +89,7 @@
                        //    WebResponseContent responseContent = Service.ContainerFlow(containerFlowDTO, stationManger.StationDeviceCode, stationManger.PickStationCode);
                        //    if (!responseContent.Status) throw new Exception(responseContent.Message);
                        //}
                        WriteLog.Write_Log("一期容器流动入库接口", "任务信息", $"返回输送线{stationManger.PickStationCode}", $"返回给输送线的任务信息:{containerFlowDTO.ToJson()}");
                        commonConveyorLine.Communicator.Write("22", (containerFlowDTO.Direction == "100" ? new byte[] { 1, 0 } : new byte[] { 2, 0 }));
                    }
                    else
@@ -111,6 +113,7 @@
                                throw new Exception($"传入料箱码{containerFlowDTO.ContainerCode},输送料状态:{W_PickToHode},不满足入库条件");
                            }
                        }
                        WriteLog.Write_Log("二期容器流动入库接口", "任务信息", $"返回输送线{stationManger.PickStationCode}", $"返回给输送线的任务信息:{containerFlowDTO.ToJson()}");
                        commonConveyorLine.SetValue(ConveyorLineDBName.W_PickToHode, (short)containerFlowDTO.Direction.ObjToInt(), stationManger.StationCode);
                    }
                    content.OK();
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/Log/ÈÎÎñÈ¡Ïû½ÓÊÕ/2026-03-12/ÈÎÎñÈ¡Ïû½Ó¿Ú260312.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
2026/3/12 14:28:48.772
任务取消
"任务:[{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000006397\"}]"
-------------------------------
2026/3/12 14:32:01.999
任务取消
"任务:[{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000006397\"}]"
-------------------------------
2026/3/12 14:36:53.603
任务取消
"任务:[{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000006397\"}]"
-------------------------------
2026/3/12 14:40:36.311
任务取消
"任务:[{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000006397\"},{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000000435\"},{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000000001\"}]"
-------------------------------
2026/3/12 14:45:07.527
任务取消
"任务:[{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000006397\"},{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000014268\"},{\"TaskCode\":\"A000006397\",\"ContainerCode\":\"A000000001\"}]"
-------------------------------
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/Program.cs
@@ -127,7 +127,7 @@
app.UseSwaggerMiddle(() => Assembly.GetExecutingAssembly().GetManifestResourceStream("WIDESEAWCS_Server.index.html") ?? throw new Exception("未找到WIDESEAWCS_Server.index.html文件"));
app.UseIpLimitMiddle();
app.UseApiLogMiddleware();
//app.UseApiLogMiddleware();
//todo
//app.UseRecordAccessLogsMiddle();
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/appsettings.json
@@ -23,7 +23,7 @@
  },
  "ApiLogIgnore": "Export,Get,get,robotQuery,drivestatus",
  "WMSApiAddress": "http://127.0.0.1:9293", //"http://127.0.0.1:9283",正式环境地址
  "LogDeubgEnable": true, //是否记录调试日志
  "LogDeubgEnable": false, //是否记录调试日志
  "PrintSql": false, //打印SQL语句
  "LogAOPEnable": false, //是否记录AOP日志
  "ApiName": "WIDESEA",
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_SystemServices/Sys_LogService.cs
@@ -131,6 +131,7 @@
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ISystemRepository;
using WIDESEAWCS_ISystemServices;
@@ -149,7 +150,7 @@
        private const string DbName = "WIDESEA_HF";
        private const string ConnectionString = "Data Source=11.2.30.112;Initial Catalog=WIDESEA_HF;User ID=kuka;Password=kuka;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
        private const long MaxMdfSizeBytes = 8L * 1024 * 1024 * 1024; // 8GB
        private const long MaxMdfSizeBytes = 7L * 1024 * 1024 * 1024; // 7GB
        private const int TargetShrinkSizeMB = 4500; // 4.5GB
        private const double FragmentationThreshold = 30.0; // 30%碎片率阈值
        private const int MaintenanceIntervalDays = 15; // 15天执行一次
@@ -163,7 +164,7 @@
        public Sys_LogService(ISys_LogRepository BaseDal) : base(BaseDal)
        {
            // ç¡®ä¿å¤‡ä»½ç›®å½•存在
            EnsureBackupDirectory();
            //EnsureBackupDirectory();
        }
        private void EnsureBackupDirectory()
@@ -734,5 +735,175 @@
                throw;
            }
        }
    }
            /// <summary>
            /// é€’归获取文件信息
            /// </summary>
            /// <param name="dirPath"></param>
            /// <returns></returns>
            private DirInfo GetDirInfo(string dirPath)
            {
                //当前文件夹
                var dirInfo = new DirInfo();
                dirInfo.dirName = Path.GetFileName(dirPath);
                //子文件
                List<FileDataInfo> files = new List<FileDataInfo>();
                foreach (var file in Directory.GetFiles(dirPath))
                {
                    files.Add(new FileDataInfo()
                    {
                        filePath = file,
                        fileName = Path.GetFileName(file)
                    });
                }
                //子文件夹
                var dirs = Directory.GetDirectories(dirPath);
                dirInfo.dirs = new List<DirInfo>();
                foreach (var dir in dirs)
                {
                    dirInfo.dirs.Add(GetDirInfo(dir));
                }
                //子文件夹,与子目录合并
                foreach (var file in files)
                {
                    dirInfo.dirs.Add(new DirInfo() { dirPath = file.filePath, dirName = file.fileName });
                }
                return dirInfo;
            }
            /// <summary>
            /// èŽ·å–æ—¥å¿—æ–‡ä»¶åˆ—è¡¨
            /// </summary>
            /// <returns></returns>
            public WebResponseContent GetLogList()
            {
                WebResponseContent content = new WebResponseContent();
                string path = Path.Combine(AppContext.BaseDirectory, "log");
                if (!Directory.Exists(path))
                {
                    return content.Error("暂无日志文件");
                }
                content.Data = GetDirInfo(path);
                content.OK();
                return content;
            }
            /// <summary>
            /// èŽ·å–æ–‡ä»¶å†…å®¹
            /// </summary>
            /// <param name="parm"></param>
            /// <returns></returns>
            public WebResponseContent GetLogData(GetLogParm parm)
            {
                WebResponseContent content = new WebResponseContent();
                string res = "";
                //是否读取到最后
                bool isEnd = false;
                long startIndex = 0;
                //文件大小
                long len = 0;
                try
                {
                if (!File.Exists(parm.path))
                {
                        throw new Exception($"文件{parm.path}不存在!");
                    }
                    using (FileStream fs = new FileStream(parm.path, FileMode.Open, FileAccess.Read, FileShare.Read))
                    {
                        //最大读取大小
                        int maxsize = (int)(1024 * parm.maxsize_KB);
                        len = fs.Length;
                        long startPos = (long)(len * (parm.percent / 100));//起始位置
                        long readLen = len - startPos;//读取长度
                        //向前加载
                        if (parm.topStartPos != 0)
                        {
                            startPos = parm.topStartPos - maxsize;
                            if (startPos < 0)
                            {
                                //已读到起始位
                                startPos = 0;
                                readLen = parm.topStartPos;
                            }
                            else
                            {
                                readLen = maxsize;
                            }
                        }
                        else
                        {
                            //读取大小是否超出最大长度
                            if (readLen > maxsize)
                            {
                                readLen = maxsize;
                            }
                            else
                            {
                                isEnd = true;
                            }
                        }
                        //加载100%,按最大内容读取
                        if (parm.percent == 100)
                        {
                            if (len < maxsize)
                            {
                                startPos = 0;
                                readLen = len;
                            }
                            else
                            {
                                startPos = len - maxsize;
                                readLen = maxsize;
                            }
                        }
                        fs.Seek(startPos, SeekOrigin.Begin);
                        var buffer = new byte[readLen];
                        fs.Read(buffer, 0, (int)readLen);
                        startIndex = startPos;
                        if (startPos != 0 && (parm.percent != 0 || parm.topStartPos != 0))
                        {
                            //不是从头加载,删除可能不完整的第一行
                            int skipCount = 0;
                            for (int i = 0; i < buffer.Length; i++)
                            {
                                if (buffer[i] == 10)
                                {
                                    skipCount = i;
                                    break;
                                }
                            }
                            if (skipCount != 0)
                            {
                                //去掉换行
                                skipCount++;
                                //下次读取前延
                                startIndex += skipCount;
                            }
                            res = Encoding.UTF8.GetString(buffer.Skip(skipCount).ToArray());
                        }
                        else
                        {
                            res = Encoding.UTF8.GetString(buffer);
                        }
                    }
                }
                catch (Exception ex)
                {
                    return content.Error(ex.Message);
                }
                return content.OK(data: new { content = res, isEnd, startIndex, len });
            }
        }
}
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs
@@ -1,9 +1,11 @@
using Autofac.Core;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Org.BouncyCastle.Asn1.Ocsp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_DTO.Agv;
@@ -12,9 +14,8 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.Agv;
using System.Reflection.Metadata;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_TaskInfoService
{
@@ -30,10 +31,12 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                string? apiAddress = _apiInfoRepository.QueryFirst(x => x.ApiCode == SendTask.ToString())?.ApiAddress;
                if (string.IsNullOrEmpty(apiAddress)) throw new Exception($"未找到发送AGV任务接口,请检查接口配置");
                string request = JsonConvert.SerializeObject(taskModel, settings);
                string response = HttpHelper.Post(apiAddress, request);
                WriteLog.Write_Log("AGV入库任务下发", "出库任务下发接口", "请求任务", $"请求:{request},回传:{response}");
                AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>() ?? throw new Exception("AGV任务发送未返回结果");
                if (agvContent.Success)
                {
@@ -55,6 +58,7 @@
        /// </summary>
        public void AgvSearchStatus1(Dt_ErrorInfo e2)
        {
            WriteLog.Write_Log("AGV查询调用及WMS故障上报", "AGV查询调用及WMS故障接口", "请求", $"请求:{e2.ToJson()}");
            if (e2 != null)
            {
                // æŸ¥è¯¢æ˜¯å¦æœ‰é”™è¯¯æ²¡æœ‰å°±æ·»åŠ ï¼Œæœ‰å°±å–æ¶ˆ
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -23,6 +23,7 @@
using RYB_PTL_API;
using SqlSugar;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.DirectoryServices.Protocols;
using System.Linq;
@@ -120,6 +121,7 @@
            {
                lock (lock_taskReceive)
                {
                    WriteLog.Write_Log("入库任务下发", "WMS入库任务接收参数", "接收参数", $"参数:{taskDTO.ToJson()}");
                    List<Dt_Task> tasks = new List<Dt_Task>();
                    List<Dt_Task> taskOlds = BaseDal.QueryData(x=> taskDTO.Tasks.Select(x => x.TaskDescribe.ContainerCode).Contains(x.PalletCode));
                    List<Dt_LocationInfo> locationInfos = _locationInfoRepository.GetCanOut(taskDTO.Tasks.Select(x=>x.TaskDescribe.ContainerCode).ToList());
@@ -252,6 +254,7 @@
                {
                    _taskExecuteDetailService.AddTaskExecuteDetail(new List<int>() { task.TaskNum }, "创建入库任务");
                }
                WriteLog.Write_Log("入库任务下发", "容器入库任务添加任务", "添加任务", $"任务:{task.ToJson()}");
                content.OK("成功");
            }
            catch (Exception ex)
@@ -487,6 +490,7 @@
                    _unitOfWorkManage.CommitTran();
                    _taskExecuteDetailService.AddTaskExecuteDetail(new List<int>() { task.TaskNum }, $"分配货位{locationInfo.LocationCode}");
                    _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Free, LocationStatusEnum.Lock, LocationChangeType.InboundAssignLocation, task.TaskNum);
                    WriteLog.Write_Log("入库任务下发", "申请入库接口", "更新任务", $"任务:{task.ToJson()}");
                    content.OK("成功");
                }
            }
@@ -542,7 +546,7 @@
                BaseDal.UpdateData(task);
                _taskExecuteDetailService.AddTaskExecuteDetail(task, task.ExceptionMessage);
                WriteLog.Write_Log("更新任务异常信息", "更新任务接口", "更新任务", $"任务:{task.ToJson()}");
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
@@ -645,6 +649,7 @@
        {
            try
            {
                WriteLog.Write_Log("接受WMS手动完成任务", "接受WMS手动完成任务接口", "任务号", $"任务号:{taskNum}");
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task != null)
                {
@@ -667,6 +672,7 @@
            WebResponseContent content=new WebResponseContent();
            try
            {
                WriteLog.Write_Log("AGV任务放行", "AGV任务放行接口", "料箱号", $"料箱:{code}");
                string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.AgvTaskFlow.ToString())?.ApiAddress;
                if (string.IsNullOrEmpty(url)) throw new Exception($"{code},未找到AGV任务放行接口,请检查接口配置");
                AgvTaskFlowDTO agvTaskFlowDTO = new AgvTaskFlowDTO()
@@ -676,6 +682,7 @@
                };
                string request = JsonConvert.SerializeObject(agvTaskFlowDTO, settings);
                string response = HttpHelper.Post(url, request);
                WriteLog.Write_Log("AGV任务放行接口请求AGV", "AGV任务放行接口", $"请求:{request},回传:{response}");
                AgvResponseContent agvResponse = JsonConvert.DeserializeObject<AgvResponseContent>(response) ?? throw new Exception($"{code},未接收到AGV任务放行返回值");
                if (!agvResponse.Success) throw new Exception($"料箱{code},AGV任务放行错误,信息:{agvResponse.Message}");
                content.OK();
@@ -695,6 +702,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                WriteLog.Write_Log("WMS料箱到达拣选位上报", "WMS料箱到达拣选位上报成接口", "信息", $"拣选位:{stationCode},料箱:{pickCode}");
                string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSPickArrivedUp.ToString())?.ApiAddress;
                if (string.IsNullOrEmpty(url)) throw new Exception($"未找到WMS料箱到达拣选位上报接口,请检查接口配置");
                ContainerArriveDTO containerArriveDTO = new ContainerArriveDTO()
@@ -704,6 +712,7 @@
                };
                string request = JsonConvert.SerializeObject(containerArriveDTO, settings);
                string response = HttpHelper.Post(url, request);
                WriteLog.Write_Log("上报WMS料箱到达", "上报WMS料箱到达", "信息", $"请求:{request},回传:{response}");
                WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{pickCode},未接收到WMS料箱到达拣选位上报返回值");
                if (wMSResponse.Code != "0") throw new Exception($"料箱{pickCode}WMS料箱到达拣选位上报错误,信息:{wMSResponse.Msg}");
                content.OK();
@@ -724,6 +733,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                WriteLog.Write_Log("任务完成", "任务完成接口", "任务号", $"任务:{taskNum}");
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)//出库任务完成逻辑
                {
@@ -752,7 +762,7 @@
                        CompleteType = 1
                    };
                    string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
                    _unitOfWorkManage.BeginTran();
                    _locationInfoRepository.UpdateData(locationInfo);
                    BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
@@ -760,6 +770,7 @@
                    _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.Free, LocationChangeType.OutboundCompleted, task.TaskNum);
                    //调用接口
                    string response = HttpHelper.Post(url, request);
                    WriteLog.Write_Log("WMS出库任务完成回传", "任务完成接口", "任务信息", $"请求:{request},回传:{response}");
                    WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},未接收到WMS出库上报返回值");
                    if (wMSResponse.Code != "0") content.Message=$"出库任务{task.TaskNum}WMS出库上报错误,信息:{wMSResponse.Msg}";
                }
@@ -781,7 +792,7 @@
                        CompleteType = 2
                    };
                    string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
                    Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
                    if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
                    {
@@ -797,6 +808,7 @@
                    _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.InStock, LocationChangeType.InboundCompleted, task.TaskNum);
                    //调用接口
                    string response = HttpHelper.Post(url, request);
                    WriteLog.Write_Log("WMS入库任务完成回传", "任务完成接口", "任务信息", $"请求:{request},回传:{response}");
                    WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},未接收到WMS入库上报返回值");
                    if (wMSResponse.Code != "0") content.Message = $"入库任务{task.TaskNum}WMS入库上报错误,信息:{wMSResponse.Msg}";
                }
@@ -819,6 +831,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                WriteLog.Write_Log("任务取消接收", "人工手动取消指定任务", "任务号", $"任务:{taskNum}");
                // 1. èŽ·å–ä»»åŠ¡ä¿¡æ¯
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null)return content.Error($"任务{taskNum}不存在");
@@ -877,6 +890,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                WriteLog.Write_Log("任务取消接收", "任务取消接口", "任务号", $"任务:{taskNum}");
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)//出库任务完成逻辑
                {
@@ -914,38 +928,129 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (taskCancels==null || taskCancels.Count<=0)
                // å‚数验证
                if (taskCancels == null || taskCancels.Count == 0)
                {
                    return content.Error("传入不能为空");
                    return content.Error("传入参数不能为空");
                }
                //获取所有料箱
                List<Dt_Task> outTasks = BaseDal.QueryData(x=>x.TaskType==TaskTypeEnum.Outbound.ObjToInt());
                WriteLog.Write_Log("任务取消接收", "任务取消接口", "任务取消", $"任务:{taskCancels.ToJson()}");
                // èŽ·å–æ‰€æœ‰å‡ºåº“ä»»åŠ¡ï¼ˆåªæŸ¥è¯¢ä¸€æ¬¡ï¼‰
                List<Dt_Task> outTasks = BaseDal.QueryData(x =>
                    x.TaskType == TaskTypeEnum.Outbound.ObjToInt());
                if (outTasks.Count == 0)
                {
                    return content.Error("未找到对应的任务");
                }
                // æŒ‰GroupId分组处理
                var tasksByGroup = outTasks.GroupBy(x => x.GroupId)
                                           .Where(g => !string.IsNullOrEmpty(g.Key))
                                           .ToDictionary(g => g.Key, g => g.ToList());
                List<Dt_Task> cancelTasks = new List<Dt_Task>();
                List<Dt_Task> cancelTasksCompleted = new List<Dt_Task>();
                //判断是否有任务存在
                foreach (var item in taskCancels)
                // æ”¶é›†æ‰€æœ‰éœ€è¦æ£€æŸ¥çš„任务组
                var groupsToCheck = new List<List<Dt_Task>>();
                foreach (var taskCancel in taskCancels)
                {
                    Dt_Task? taskExist = outTasks.FirstOrDefault(x=>x.PalletCode== item.ContainerCode);
                    if (taskExist==null)
                    // æ‰¾åˆ°è¯¥ä»»åŠ¡æ‰€åœ¨çš„ç»„
                    var group = tasksByGroup.Values.FirstOrDefault(g =>
                        g.Any(t => t.PalletCode == taskCancel.ContainerCode));
                    if (group != null && !groupsToCheck.Contains(group))
                    {
                        content.Message += $"{item.ContainerCode}任务不存在";
                        continue;
                        groupsToCheck.Add(group);
                    }
                    if (taskExist.TaskState==TaskStatusEnum.AGV_TakeFinish.ObjToInt())
                    {
                        taskExist.IsCancel = 1;
                        cancelTasks.Add(taskExist);
                    }
                    else if(taskExist.TaskState == TaskStatusEnum.AGV_Executing.ObjToInt())
                    {
                        cancelTasksCompleted.Add(taskExist);
                    }
                    else
                    {
                        return content.Error($"任务取消失败{item.TaskCode}任务状态不可取消!");
                    }
                }
                // éªŒè¯ä»»åŠ¡çŠ¶æ€
                foreach (var group in groupsToCheck)
                {
                    var firstTask = group.FirstOrDefault();
                    if (firstTask == null) continue;
                    // æ£€æŸ¥ç»„内所有任务状态
                    foreach (var task in group)
                    {
                        if (task.TaskState == TaskStatusEnum.AGV_TakeFinish.ObjToInt())
                        {
                            task.IsCancel = 1;
                            cancelTasks.Add(task);
                        }
                        else if (task.TaskState == TaskStatusEnum.AGV_Executing.ObjToInt())
                        {
                            cancelTasksCompleted.Add(task);
                        }
                        else
                        {
                            return content.Error($"任务取消失败{task.PalletCode}任务状态不可取消!");
                        }
                    }
                }
                //WriteLog.Write_Log("任务取消接收", "任务取消接口", "任务取消", $"任务:{taskCancels.ToJson()}");
                //if (taskCancels==null || taskCancels.Count<=0)
                //{
                //    return content.Error("传入不能为空");
                //}
                ////获取所有料箱
                //List<Dt_Task> outTasks = BaseDal.QueryData(x=>x.TaskType==TaskTypeEnum.Outbound.ObjToInt());
                //List<Dt_Task> cancelTasks = new List<Dt_Task>();
                //List<Dt_Task> cancelTasksCompleted = new List<Dt_Task>();
                //HashSet<string> processedGroups = new HashSet<string>();
                ////判断是否有任务存在
                //foreach (var item in taskCancels)
                //{
                //    Dt_Task? taskExist = outTasks.FirstOrDefault(x=>x.PalletCode == item.ContainerCode);
                //    if (taskExist==null)
                //    {
                //        content.Message += $"{item.ContainerCode}任务不存在";
                //        WriteLog.Write_Log("任务取消接收", "任务取消接口", "任务不存在", $"任务:{item.ContainerCode}");
                //        continue;
                //    }
                //    if (string.IsNullOrEmpty(taskExist.GroupId))
                //    {
                //        continue;
                //    }
                //    processedGroups.Add(taskExist.GroupId);
                //    //if (taskExist.TaskState == TaskStatusEnum.AGV_TakeFinish.ObjToInt())
                //    //{
                //    //    taskExist.IsCancel = 1;
                //    //    cancelTasks.Add(taskExist);
                //    //}
                //    //else if(taskExist.TaskState == TaskStatusEnum.AGV_Executing.ObjToInt())
                //    //{
                //    //    cancelTasksCompleted.Add(taskExist);
                //    //}
                //    //else
                //    //{
                //    //    return content.Error($"任务取消失败{item.TaskCode}任务状态不可取消!");
                //    //}
                //}
                //// å–消整个组
                //foreach(var processed in processedGroups)
                //{
                //    List<Dt_Task> groupTask = BaseDal.QueryData(x => x.TaskType == TaskTypeEnum.Outbound.ObjToInt() && x.GroupId == processed);
                //    foreach (var group in groupTask)
                //    {
                //        if (group.TaskState == TaskStatusEnum.AGV_TakeFinish.ObjToInt())
                //        {
                //            group.IsCancel = 1;
                //            cancelTasks.Add(group);
                //        }
                //        else if (group.TaskState == TaskStatusEnum.AGV_Executing.ObjToInt())
                //        {
                //            cancelTasksCompleted.Add(group);
                //        }
                //        else
                //        {
                //            return content.Error($"任务取消失败{group.PalletCode}任务状态不可取消!");
                //        }
                //    }
                //}
                _unitOfWorkManage.BeginTran();
                BaseDal.UpdateData(cancelTasks);
                foreach (var item in cancelTasksCompleted)
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs
@@ -14,6 +14,7 @@
using WIDESEAWCS_DTO.Agv;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_TaskInfoService;
namespace WIDESEAWCS_Tasks
{
@@ -29,6 +30,7 @@
                #region å‡ºåº“任务下发
                if (newTasksOut.Count>0)
                {
                    WriteLog.Write_Log("AGV出库任务下发", "出库任务下发接口", "添加任务", $"任务:{newTasksOut.ToJson()}");
                    foreach (var GroupTask in newTasksOut.GroupBy(x=>x.NextAddress))
                    {
                        int taskCount = 6;
@@ -116,6 +118,7 @@
                #region å…¥åº“任务下发
                if (newTasksIn.Count > 0)
                {
                    WriteLog.Write_Log("AGV入库任务下发", "出库任务下发接口", "添加任务", $"任务:{newTasksIn.ToJson()}");
                    foreach (var task in newTasksIn)
                    {
                        try