850105e8cdf0d048ef843d87520513ac77a64200..2d9272bdcdbdbca81396a61493e4ef6a822dcf4a
2025-07-24 huangxiaoqiang
代码提交
2d9272 对比 | 目录
2025-07-24 huangxiaoqiang
忽略文件
e3a49d 对比 | 目录
已添加5个文件
已修改16个文件
已删除10个文件
101555 ■■■■■ 文件已修改
.gitignore 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v9.bin 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v9.bin 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json 299 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 297 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRGVTaskRepository.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRGVTask_HtyRepository.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IRGVTaskService.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IRGVTask_HtyService.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_RGVTask.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_RGVTask_Hty.cs 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Error_CommonStackerStationCraneJob_09-28-47.log 9864 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_一号RGV_09-19-28.log 23790 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_一号堆垛机_09-19-28.log 24915 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_库前输送线_09-22-12.log 27196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/20250724/生成任务_log20250724.log 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/一号RGV/Logs_20250723132805.txt 4661 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/一号堆垛机/Logs_20250723132805.txt 4328 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/库前输送线/Logs_20250723132805.txt 5094 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/RGVTaskRepository.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/RGVTask_HtyRepository.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskService.cs 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTask_HtyService.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 192 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob/CommonRGVJob.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -3241,3 +3241,6 @@
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0002d77e-ce69-4613-ac8c-744fc1fec138.vsidx
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ab61557a-40ee-46b8-9231-c71e63835080.vsidx
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/e3511513-b158-4621-bfe7-7dfabeae5cd7.vsidx
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/55089a7f-b00c-41ed-a307-74d60e359f03.vsidx
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a6755183-7944-4956-85c2-a3885be6f113.vsidx
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bff95595-ec75-4101-b046-c651936298e1.vsidx
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue
@@ -52,9 +52,10 @@
    ]);
    const columns = ref([
      { field: "taskId", title: "TaskId", type: "int", width: 90, hidden: true, readonly: true, require: true, align: "left", },
      { field: "taskNum", title: "任务号", type: "int", width: 90, align: "left", },
      { field: "palletCode", title: "托盘号", type: "string", width: 90, align: "left", bind: { key: "agvareaEnum", data: {} } },
      { field: "roadway", title: "巷道", type: "string", width: 90, align: "left", },
      { field: "taskNum", title: "任务号", type: "int", width: 75, align: "left", },
      { field: "palletCode", title: "托盘号", type: "string", width: 150, align: "left",  },
      { field: "roadway", title: "巷道", type: "string", width: 60, align: "left", },
      { field: "floor", title: "楼层", type: "string", width: 60, align: "left", },
      { field: "taskType", title: "任务类型", type: "int", width: 90, align: "left", bind: { key: "taskType", data: [] }, },
      { field: "taskState", title: "任务状态", type: "int", width: 150, align: "left", bind: { key: "taskState", data: [] }, },
      { field: "sourceAddress", title: "起始地址", type: "int", width: 120, align: "left", },
@@ -63,6 +64,7 @@
      { field: "nextAddress", title: "下一位置", type: "string", width: 120, align: "left",  },
      { field: "exceptionMessage", title: "异常信息", type: "string", width: 90, align: "left", hidden: true, },
      { field: "grade", title: "优先级", type: "int", width: 80, align: "left", },
      { field: "rgvName", title: "RGV名称", type: "string", width: 100, align: "left", },
      { field: "dispatchertime", title: "任务下发时间", type: "datetime", width: 150, align: "left", },
      { field: "wMSId", title: "WMS任务主键", type: "int", width: 120, align: "left", hidden: true, },
      { field: "creater", title: "创建人", type: "string", width: 90, align: "left", },
@@ -70,6 +72,7 @@
      { field: "modifier", title: "修改人", type: "string", width: 100, align: "left", },
      { field: "modifyDate", title: "修改时间", type: "datetime", width: 160, align: "left", },
      { field: "remark", title: "备注", type: "string", width: 100, align: "left", hidden: true, },
    ]);
    const detail = ref({
      cnName: "",
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v9.bin
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v9.bin
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
@@ -3,16 +3,12 @@
  "WorkspaceRootPath": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_dto\\enum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\enum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -23,56 +19,12 @@
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob\\rgvdbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob\\rgvdbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\rgv\\commonrgv.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\rgv\\commonrgv.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\rgvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\rgvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\quartzjob\\deviceinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\quartzjob\\deviceinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline_after.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline_after.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackerstationcrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackerstationcrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -94,230 +46,81 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Enum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Enum\\TaskStatusEnum.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Enum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\Enum\\TaskStatusEnum.cs",
              "ViewState": "AgIAAIUAAAAAAAAAAADwv5YAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-23T07:50:29.267Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "StackerCraneDBName.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "ViewState": "AgIAAFEAAAAAAAAAAAAAAFUAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-23T04:32:29.267Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "CommonRGVJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ViewState": "AgIAAJgAAAAAAAAAAAAuwKgAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:38:07.648Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "RequestInbound.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ViewState": "AgIAABcAAAAAAAAAAAAgwCgAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-21T01:22:15.626Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AgIAAI0AAAAAAAAAAAAuwLcAAABAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-21T05:15:06.123Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAALsAAAAAAAAAAAAgwMMAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-23T05:57:19.378Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAABMDAAAAAAAAAADwvysDAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-07T08:38:13.032Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "TaskController.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAAAgAAAAAAAAAAADwvxkAAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-19T11:16:44.463Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "CommonRGV.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\RGV\\CommonRGV.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\RGV\\CommonRGV.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\RGV\\CommonRGV.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\RGV\\CommonRGV.cs",
              "ViewState": "AgIAAK4BAAAAAAAAAAAjwMMBAABXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-23T05:49:00.47Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "RGVDBName.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\RGVDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob\\RGVDBName.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\RGVDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob\\RGVDBName.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-23T06:00:03.358Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "ITaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAAEMAAAAAAAAAAAAvwFUAAABDAAAAAAAAAA==",
              "ViewState": "AgIAAEUAAAAAAAAAAAAvwFMAAABIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-07T08:38:24.848Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "RGVTaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\RGVTaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\RGVTaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\RGVTaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\RGVTaskService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAFMAAABEAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-07T07:30:18.649Z",
              "WhenOpened": "2025-07-24T04:56:14.602Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "DeviceInfoController.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 3,
              "Title": "RequestInbound.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ViewState": "AgIAAAUAAAAAAAAAAAAuwCEAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T09:16:20.137Z"
              "WhenOpened": "2025-07-24T04:21:01.123Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "CommonConveyorLine_After.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine_After.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine_After.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine_After.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine_After.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 0,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAOICAAAAAAAAAADwv/0CAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:47:08.857Z"
              "WhenOpened": "2025-07-24T03:47:03.559Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "IShuttleCar.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwkAAAAqAAAAAAAAAA==",
              "DocumentIndex": 2,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAAMsAAAAAAAAAAAAAANUAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:47:16.113Z"
              "WhenOpened": "2025-07-24T03:47:03.579Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "ShuttleCar.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 1,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AgIAAJYAAAAAAAAAAAAQwLcAAAA1AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:47:14.013Z"
              "WhenOpened": "2025-07-24T03:54:34.335Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "CommonStackerStationCrane.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerStationCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerStationCrane.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerStationCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerStationCrane.cs",
              "ViewState": "AgIAANUBAAAAAAAAAAAAwOwBAAAdAAAAAAAAAA==",
              "DocumentIndex": 5,
              "Title": "CommonRGVJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ViewState": "AgIAAJAAAAAAAAAAAAAAAKcAAAAcAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:44:25.564Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "Program.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAAHgAAAAAAAAAAABQwJEAAAAJAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-12T08:37:40.822Z"
              "WhenOpened": "2025-07-24T03:47:47.688Z",
              "EditorCaption": ""
            }
          ]
        }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,16 +3,12 @@
  "WorkspaceRootPath": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -23,56 +19,12 @@
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_dto\\enum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\enum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob\\rgvdbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob\\rgvdbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\rgv\\commonrgv.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\rgv\\commonrgv.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\rgvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\rgvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\quartzjob\\deviceinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\quartzjob\\deviceinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline_after.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline_after.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackerstationcrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackerstationcrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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}"
    }
  ],
  "DocumentGroupContainers": [
@@ -82,7 +34,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 6,
          "SelectedChildIndex": 4,
          "Children": [
            {
              "$type": "Bookmark",
@@ -94,224 +46,81 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "StackerCraneDBName.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "ViewState": "AgIAAFEAAAAAAAAAAAAAAFUAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-23T04:32:29.267Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "CommonRGVJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ViewState": "AgIAALAAAAAAAAAAAAAUwMUAAAA3AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:38:07.648Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "RequestInbound.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ViewState": "AgIAABUAAAAAAAAAAAAjwC4AAAAtAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-21T01:22:15.626Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AgIAAI0AAAAAAAAAAAAuwLcAAABAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-21T05:15:06.123Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAAJUAAAAAAAAAAADwv+cAAABIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-23T05:57:19.378Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAHkAAAAAAAAAAADwv74DAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-07T08:38:13.032Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "TaskController.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAAAgAAAAAAAAAAADwvxkAAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-19T11:16:44.463Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "DocumentIndex": 5,
              "Title": "ITaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAAJQAAAAAAAAAAAAvwJ4AAAAAAAAAAAAAAA==",
              "ViewState": "AgIAAEUAAAAAAAAAAAAvwFMAAABIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-07T08:38:24.848Z",
              "WhenOpened": "2025-07-24T04:56:14.602Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Enum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Enum\\TaskStatusEnum.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Enum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\Enum\\TaskStatusEnum.cs",
              "ViewState": "AgIAAIUAAAAAAAAAAADwv5YAAAAIAAAAAAAAAA==",
              "DocumentIndex": 3,
              "Title": "RequestInbound.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ViewState": "AgIAAFAAAAAAAAAAAADwvzAAAAChAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-23T07:50:29.267Z"
              "WhenOpened": "2025-07-24T04:21:01.123Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "CommonRGV.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\RGV\\CommonRGV.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\RGV\\CommonRGV.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\RGV\\CommonRGV.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\RGV\\CommonRGV.cs",
              "ViewState": "AgIAAK4BAAAAAAAAAAAjwMMBAABXAAAAAAAAAA==",
              "DocumentIndex": 0,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAMQAAAAAAAAAAAAAwNsAAAA4AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-23T05:49:00.47Z"
              "WhenOpened": "2025-07-24T03:47:03.559Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "RGVDBName.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\RGVDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob\\RGVDBName.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\RGVDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob\\RGVDBName.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 1,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs*",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs*",
              "ViewState": "AgIAAAEBAAAAAAAAAAAuwA4BAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-23T06:00:03.358Z"
              "WhenOpened": "2025-07-24T03:47:03.579Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "RGVTaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\RGVTaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\RGVTaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\RGVTaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\RGVTaskService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAFMAAABEAAAAAAAAAA==",
              "DocumentIndex": 4,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AgIAAJYAAAAAAAAAAAAQwLcAAAA1AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-07T07:30:18.649Z"
              "WhenOpened": "2025-07-24T03:54:34.335Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "DeviceInfoController.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 2,
              "Title": "CommonRGVJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ViewState": "AgIAAKsAAAAAAAAAAADwv7IAAABDAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T09:16:20.137Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "CommonConveyorLine_After.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine_After.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine_After.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine_After.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine_After.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:47:08.857Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "IShuttleCar.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwkAAAAqAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:47:16.113Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "ShuttleCar.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:47:14.013Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "CommonStackerStationCrane.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerStationCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerStationCrane.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerStationCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerStationCrane.cs",
              "ViewState": "AgIAANUBAAAAAAAAAAAAwOwBAAAdAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-24T01:44:25.564Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "Program.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAAHgAAAAAAAAAAABQwJEAAAAJAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-06-12T08:37:40.822Z"
              "WhenOpened": "2025-07-24T03:47:47.688Z",
              "EditorCaption": ""
            }
          ]
        }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRGVTaskRepository.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRGVTask_HtyRepository.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IRGVTaskService.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IRGVTask_HtyService.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -81,9 +81,9 @@
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        Dt_Task QueryConveyorLineTask(string currentAddress);
        Dt_Task QueryConveyorLineTask(string currentAddress, int taskNum);
        Dt_Task QueryConveyorLineFinishTask(string currentAddress);
        Dt_Task QueryConveyorLineFinishTask(string currentAddress,int taskNum);
        /// <summary>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_RGVTask.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_RGVTask_Hty.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Error_CommonStackerStationCraneJob_09-28-47.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_Ò»ºÅRGV_09-19-28.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_Ò»ºÅ¶Ñ¶â»ú_09-19-28.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_¿âǰÊäËÍÏß_09-22-12.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/20250724/Éú³ÉÈÎÎñ_log20250724.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
时间:2025/7/24 9:41:44
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 10:06:54
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 10:45:53
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 11:13:40
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 12:13:32
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:中文提示 : æ‹‰å§†è¾¾è§£æžä¸æ”¯æŒå½“前函数GetScCode,SqlFunc这个类里面有大量函数可用,也许有你想要的,例如: it=>SqlFunc.HasValue(it.Id)\r\nEnglish Message : Expression parsing does not support the current function GetScCode. There are many functions available in the SqlFunc class, for example, it=>SqlFunc.HasValue(it.Id)","Data":null,"DevMessage":null}
时间:2025/7/24 12:13:47
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:中文提示 : æ‹‰å§†è¾¾è§£æžä¸æ”¯æŒå½“前函数GetScCode,SqlFunc这个类里面有大量函数可用,也许有你想要的,例如: it=>SqlFunc.HasValue(it.Id)\r\nEnglish Message : Expression parsing does not support the current function GetScCode. There are many functions available in the SqlFunc class, for example, it=>SqlFunc.HasValue(it.Id)","Data":null,"DevMessage":null}
时间:2025/7/24 12:13:59
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:中文提示 : æ‹‰å§†è¾¾è§£æžä¸æ”¯æŒå½“前函数GetScCode,SqlFunc这个类里面有大量函数可用,也许有你想要的,例如: it=>SqlFunc.HasValue(it.Id)\r\nEnglish Message : Expression parsing does not support the current function GetScCode. There are many functions available in the SqlFunc class, for example, it=>SqlFunc.HasValue(it.Id)","Data":null,"DevMessage":null}
时间:2025/7/24 12:14:08
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 12:27:16
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 12:51:57
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 13:01:06
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 13:16:58
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 13:45:41
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 13:56:10
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 14:00:30
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 14:04:09
{"Status":false,"Code":0,"Message":"未找到该托盘【04819】任务","Data":null,"DevMessage":null}
时间:2025/7/24 14:04:22
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/Ò»ºÅRGV/Logs_20250723132805.txt
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/Ò»ºÅ¶Ñ¶â»ú/Logs_20250723132805.txt
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/¿âǰÊäËÍÏß/Logs_20250723132805.txt
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/RGVTaskRepository.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/RGVTask_HtyRepository.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskService.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTask_HtyService.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -20,6 +20,7 @@
using Newtonsoft.Json;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using WIDESEA_Comm.Http;
using WIDESEA_Common.Log;
using WIDESEAWCS_Common;
@@ -41,6 +42,7 @@
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_TaskInfoRepository;
@@ -55,6 +57,7 @@
        private readonly ITask_HtyRepository _taskHtyRepository;
        private readonly ISys_ConfigService _sys_ConfigService;
        private readonly IMapper _mapper;
        private readonly IDeviceInfoRepository _deviceInfoRepository;
        private readonly IDt_StationManagerRepository _stationManagerRepository;
@@ -71,7 +74,8 @@
        public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList();
        public List<int> TaskRelocationboundTypes => typeof(TaskRelocationTypeEnum).GetEnumIndexList();
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService taskHtyService, ISys_ConfigService sys_ConfigService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository taskHtyRepository) : base(BaseDal)
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService taskHtyService, ISys_ConfigService sys_ConfigService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository taskHtyRepository,
        IDeviceInfoRepository deviceInfoRepository) : base(BaseDal)
        {
            _routerService = routerService;
            _taskExecuteDetailService = taskExecuteDetailService;
@@ -82,6 +86,7 @@
            _taskHtyRepository = taskHtyRepository;
            _mapper = mapper;
            _sys_ConfigService = sys_ConfigService;
            _deviceInfoRepository = deviceInfoRepository;
        }
        /// <summary>
@@ -98,20 +103,48 @@
                // éåŽ†ä¼ å…¥çš„WMSTaskDTO列表
                foreach (var item in taskDTOs)
                {
                    var task = BaseDal.QueryFirst(x => x.WMSTaskNum == item.TaskId || x.PalletCode == item.TPbarcode);
                    if (task != null)
                    {
                        task.Creater = "WMS";
                        task.Grade = 1;
                        task.PalletCode = item.TPbarcode;
                    }
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå‡ºåº“ä»»åŠ¡
                    if (item.TaskType == "2")
                    {
                        string[] targetCodes = item.BeginPoint.Split("-");
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == GetScCode(Convert.ToInt32(targetCodes[0])) && x.stationType == 2);
                        Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationChildCode==item.EndPoint);
                        if (stationManagerEnd == null)
                        {
                            return content.Error("未找到出库站台信息");
                        }
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == GetScCode(Convert.ToInt32(targetCodes[0])) && x.stationType == 2 && x.stationFloor == stationManagerEnd.stationFloor);
                        var RGVName = string.Empty;
                        if (stationManager.stationFloor == "1F")
                        {
                            var deviceCode = _deviceInfoRepository.Db.Queryable<Dt_DeviceInfo>().Where(x => x.DeviceStatus == "1" && x.DeviceRemark == "OneFloor").Where(x => x.DeviceCode.Contains("RGV")).ToList().Select(x => x.DeviceCode).ToList();
                            if (deviceCode != null && deviceCode.Count() > 0)
                            {
                                if (deviceCode.Contains("RGV01")&& deviceCode.Contains("RGV02"))
                                {
                                    var RGVOne = BaseDal.QueryData(x => x.RGVName == "RGV01").ToList();
                                    var RGVTwo = BaseDal.QueryData(x => x.RGVName == "RGV02").ToList();
                                    if (RGVOne.Count > RGVTwo.Count)
                                    {
                                        RGVName = "RGV01";
                                    }
                                    else
                                    {
                                        RGVName = "RGV02";
                                    }
                                }
                                else
                                {
                                    RGVName = deviceCode[0];
                                }
                            }
                            else
                            {
                                RGVName = "RGV01";
                            }
                        }
                        Dt_Task taskOut = new Dt_Task()
                        {
                            TaskNum = BaseDal.GetTaskNo().Result,
@@ -126,13 +159,21 @@
                            Roadway = GetScCode(Convert.ToInt32(targetCodes[0])),
                            NextAddress = stationManager.stationChildCode,
                            TargetAddress = item.EndPoint,
                            RGVName = "RGV01"
                            RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                            Floor= stationManager.stationFloor,
                        };
                        BaseDal.AddData(taskOut);
                    }
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå…¥åº“ä»»åŠ¡
                    else if (item.TaskType == "1")
                    {
                        var task = BaseDal.QueryFirst(x => x.PalletCode == item.TPbarcode);
                        if (task != null)
                        {
                            task.Creater = "WMS";
                            task.Grade = 1;
                            task.PalletCode = item.TPbarcode;
                        task.TaskType = (int)TaskInboundTypeEnum.Inbound;
                        task.TaskState = (int)TaskInStatusEnum.RGV_IndispatchFinish;
@@ -151,24 +192,32 @@
                        task.NextAddress = stationManager.stationChildCode;
                        BaseDal.UpdateData(task);
                        }
                        else
                        {
                            return content.Error($"未找到该托盘【{item.TPbarcode}】任务");
                        }
                    }
                    else if (item.TaskType == "3")
                    {
                        task.TaskType = (int)TaskRelocationTypeEnum.Relocation;
                        Dt_Task taskRelocation = new Dt_Task()
                        {
                            TaskType = (int)TaskRelocationTypeEnum.Relocation,
                        task.TaskState = (int)TaskRelocationStatusEnum.RelocationNew;
                            TaskState = (int)TaskRelocationStatusEnum.RelocationNew,
                        task.SourceAddress = item.BeginPoint;
                            SourceAddress = item.BeginPoint,
                        task.CurrentAddress = item.BeginPoint;
                            CurrentAddress = item.BeginPoint,
                        task.NextAddress = item.EndPoint;
                            NextAddress = item.EndPoint,
                        task.TargetAddress = item.EndPoint;
                            TargetAddress = item.EndPoint,
                        task.Grade = 3;
                            Grade = 3,
                        BaseDal.AddData(tasks);
                        };
                        BaseDal.AddData(taskRelocation);
                    }
                    else
                    {
@@ -317,7 +366,7 @@
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        public Dt_Task QueryConveyorLineTask(string currentAddress)
        public Dt_Task QueryConveyorLineTask(string currentAddress,int taskNum)
        {
            Dt_Task task= BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.RGV_InExecutingFinish && x.CurrentAddress == currentAddress, TaskOrderBy);
            if (task == null)
@@ -333,12 +382,12 @@
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        public Dt_Task QueryConveyorLineFinishTask(string currentAddress)
        public Dt_Task QueryConveyorLineFinishTask(string currentAddress,int taskNum)
        {
            Dt_Task task = BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.NextAddress == currentAddress, TaskOrderBy);
            Dt_Task task = BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.NextAddress == currentAddress && x.TaskNum == taskNum, TaskOrderBy);
            if (task == null)
            {
                task = BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting && x.NextAddress == currentAddress, TaskOrderBy);
                task = BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting && x.CurrentAddress == currentAddress && x.TaskNum == taskNum, TaskOrderBy);
            }
            return task;
        }
@@ -540,6 +589,12 @@
                        BaseDal.DeleteData(task);
                        _taskHtyRepository.AddData(task_Hty);
                    }
                    if (task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
                    {
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode == task.NextAddress);
                        task.CurrentAddress = task.NextAddress;
                        task.NextAddress = task.TargetAddress;
                    }
                    if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                    {
@@ -551,13 +606,8 @@
                {
                    int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                    task.TaskState = nextStatus;
                    if (task.TaskState == (int)TaskInStatusEnum.Line_InExecuting)
                    {
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode== task.NextAddress);
                        task.CurrentAddress = task.NextAddress;
                        task.NextAddress = stationManager.stationNextChildCode;
                    }
                    else if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
                    if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
                    {
                        task.CurrentAddress = task.NextAddress;
                        task.NextAddress = task.TargetAddress;
@@ -644,10 +694,10 @@
                }
                else if (task.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
                {
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress);
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress && x.stationFloor == task.Floor);
                    task.TaskState = (int)TaskInStatusEnum.RGV_InExecutingFinish;
                    task.NextAddress = stationManager.stationNextChildCode;
                    task.CurrentAddress = task.NextAddress;
                    task.NextAddress = stationManager.stationNextChildCode;
                    task.ModifyDate = DateTime.Now;
                    BaseDal.UpdateData(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV入库完成");
@@ -661,7 +711,7 @@
                }
                else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting)
                {
                    task.TaskState = (int)TaskOutStatusEnum.RGV_OutFinish;
                    task.TaskState = (int)TaskOutStatusEnum.OutFinish;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
@@ -722,7 +772,7 @@
                {
                    task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 2);
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 2 && x.stationFloor == task.Floor);
                    task.CurrentAddress = task.NextAddress;
@@ -734,9 +784,7 @@
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
                {
                    //todo åŒæ­¥åˆ°WMS
                    int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                    task.TaskState = nextStatus;
                    task.TaskState = (int)TaskInStatusEnum.InFinish; ;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -37,6 +37,7 @@
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_SignalR;
using WIDESEAWCS_Tasks.ConveyorLineJob;
@@ -48,8 +49,6 @@
    public partial class CommonConveyorLineJob : JobBase, IJob
    {
        private readonly ITaskService _taskService;
        private readonly IRGVTaskService _rgvtaskService;
        private readonly IRGVTask_HtyService _rgvtask_HtyService;
        private readonly ITaskRepository _taskRepository;
        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
        private readonly IRouterService _routerService;
@@ -58,12 +57,12 @@
        private readonly IDt_StationManagerRepository _stationManagerRepository;
        private readonly IMapper _mapper;
        private readonly ICacheService _cacheService;
        private readonly IDeviceInfoRepository _deviceInfoRepository;
        private readonly INoticeService _noticeService;
        private static List<string>? userTokenIds;
        private static List<int>? userIds;
        public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IDt_StationManagerService stationManagerService, IMapper mapper, ICacheService cacheService, INoticeService noticeService, ITaskRepository taskRepository, IRGVTaskService rgvtaskService, IRGVTask_HtyService rgvtask_HtyService,
        IDt_StationManagerRepository stationManagerRepository)
        public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IDt_StationManagerService stationManagerService, IMapper mapper, ICacheService cacheService, INoticeService noticeService, ITaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, IDeviceInfoRepository deviceInfoRepository)
        {
            _taskService = taskService;
            _taskExecuteDetailService = taskExecuteDetailService;
@@ -73,9 +72,8 @@
            _cacheService = cacheService;
            _noticeService = noticeService;
            _taskRepository = taskRepository;
            _rgvtaskService = rgvtaskService;
            _rgvtask_HtyService = rgvtask_HtyService;
            _stationManagerRepository = stationManagerRepository;
            _deviceInfoRepository = deviceInfoRepository;
        }
        public async Task Execute(IJobExecutionContext context)
@@ -163,15 +161,9 @@
                var log = $"【{conveyorLine._deviceName}】站台【{station.stationChildCode}】请求取货";
                await LogAndWarn(conveyorLine.DeviceName, log);
                var task = _taskService.QueryConveyorLineTask(station.stationChildCode);
                //if (task != null)
                //{
                //    RequestInOrOutbound(command, conveyorLine, station, task);
                //}
                //else
                //{
                    await HandleNewTaskAsync(conveyorLine, command, station.stationChildCode, task);
                //}
                var task = _taskService.QueryConveyorLineTask(station.stationChildCode, command.TaskNum);
                await HandleNewTaskAsync(conveyorLine, command, station.stationChildCode, task);
            }
            catch (Exception ex)
            {
@@ -186,18 +178,25 @@
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public async Task ConveyorLineFinish(ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, Dt_StationManager station)
        public async Task ConveyorLineFinish(ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, Dt_StationManager stationManager)
        {
            try
            {
                // è¾“出信息,表示站台请求取货
                var log = $"【{conveyorLine._deviceName}】站台【{station.stationChildCode}】,任务号:【{command.TaskNum}】完成";
                var log = $"【{conveyorLine._deviceName}】站台【{stationManager.stationChildCode}】,任务号:【{command.TaskNum}】完成";
                await LogAndWarn(conveyorLine.DeviceName, log);
                var task = _taskService.QueryConveyorLineFinishTask(station.stationChildCode);
                var task = _taskService.QueryConveyorLineFinishTask(stationManager.stationChildCode, command.TaskNum);
                //改查询方法
                HandleFinishTaskAsync(conveyorLine, command, station.stationChildCode, task);
                if(stationManager.stationType==5||stationManager.stationType==4)
                {
                    // å¦‚果任务存在
                    if (task != null)
                    {
                        Thread.Sleep(1000);
                        _taskService.UpdateTaskStatusToNext(task);
                    }
                }
            }
            catch (Exception ex)
@@ -212,88 +211,8 @@
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        /// <param name="ProtocalDetailValue">线体当前bool读取偏移地址</param>
        public void RequestInOrOutbound(ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, Dt_StationManager station,Dt_Task task)
        public void RequestNextAddress(ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, Dt_StationManager station, Dt_Task task)
        {
            try
            {
                // è¾“出成功信息,包括输送线名称、任务号、托盘条码和子设备代码,以及任务信息
                var logs = $"【{conveyorLine._deviceName}】任务号:【{task.TaskNum}】,托盘条码:【{task.PalletCode}】已到达【{station.stationChildCode}】输送线,task{task.ToJsonString()}";
                ConsoleHelper.WriteSuccessLine(logs);
                _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
                WriteInfo(conveyorLine.DeviceName, logs);
                // å¦‚果任务不为空,则执行以下操作
                if (task != null)
                {
                    ConveyorLineTaskCommandWrite taskCommand = new ConveyorLineTaskCommandWrite()
                    {
                        TaskNum = Convert.ToInt16(task.TaskNum),
                        TargetAddress = Convert.ToInt16(task.NextAddress),
                        WriteInteractiveSignal = task.TaskType == (int)TaskOutboundTypeEnum.Outbound ? (byte)Convert.ToSByte(2) : (byte)Convert.ToSByte(1)
                    };
                    // è¾“出成功信息,包括输送线名称、任务号、托盘条码、子设备代码和下一目标地址
                    var log = $"【{conveyorLine._deviceName}】任务号:【{command.TaskNum}】,托盘条码:【{command.Barcode}】已到达【{station.stationChildCode}】输送线请求出库,下一目标地址【{taskCommand.TargetAddress}】";
                    ConsoleHelper.WriteSuccessLine(log);
                    _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
                    WriteInfo(conveyorLine.DeviceName, log);
                    var result = SendCommand(taskCommand, conveyorLine, station.stationChildCode);
                    if (result)
                    {
                        _taskService.UpdateTaskStatusToNext(task);
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
        /// <summary>
        /// è¾“送线请求出库下一地址
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void ConveyorLineInOrOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager station, Dt_Task task)
        {
            // æ‰“印成功日志,显示当前设备名称、任务号、托盘条码以及请求出库下一地址的子设备代码
            var log = $"【{conveyorLine._deviceName}】任务号:【{command.TaskNum}】,托盘条码:【{command.Barcode}】已到达【{station.stationChildCode}】输送线请求出库完成";
            ConsoleHelper.WriteSuccessLine(log);
            _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
            WriteInfo(conveyorLine.DeviceName, log);
            // å¦‚果任务存在
            if (task != null)
            {
                _taskService.UpdateTaskStatusToNext(task);
            }
        }
        /// <summary>
        /// è¾“送线请求出库下一地址
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void RequestNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager station, Dt_Task task)
        {
            // æ‰“印成功日志,显示当前设备名称、任务号、托盘条码以及请求出库下一地址的子设备代码
            var log = $"【{conveyorLine._deviceName}】任务号:【{command.TaskNum}】,托盘条码:【{command.Barcode}】已到达【{station.stationChildCode}】输送线请求出库下一地址";
            ConsoleHelper.WriteSuccessLine(log);
            _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
            WriteInfo(conveyorLine.DeviceName, log);
            // å¦‚果任务存在
            if (task != null)
            {
                ConveyorLineTaskCommandWrite taskCommand = new ConveyorLineTaskCommandWrite()
@@ -303,53 +222,22 @@
                    WriteInteractiveSignal = task.TaskType == (int)TaskOutboundTypeEnum.Outbound ? (byte)Convert.ToSByte(2) : (byte)Convert.ToSByte(1)
                };
                // æ‰“印成功日志,显示当前设备名称、任务号、托盘条码、子设备代码以及下一目标地址
                var logs = $"【{conveyorLine._deviceName}】任务号:【{command.TaskNum}】,托盘条码:【{command.Barcode}】已到达【{station.stationChildCode}】输送线请求出库下一地址,下一目标地址【{taskCommand.TargetAddress}】";
                ConsoleHelper.WriteSuccessLine(logs);
                var log = $"【{conveyorLine._deviceName}】任务号:【{task.TaskNum}】,托盘条码:【{task.PalletCode}】已到达【{station.stationChildCode}】下一目标地址【{taskCommand.TargetAddress}】输送线,task{task.ToJsonString()}";
                _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
                WriteInfo(conveyorLine.DeviceName, logs);
                ConsoleHelper.WriteSuccessLine(log);
                _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
                WriteInfo(conveyorLine.DeviceName, log);
                var result = SendCommand(taskCommand, conveyorLine, station.stationChildCode);
                if (result)
                {
                    Thread.Sleep(1000);
                    _taskService.UpdateTaskStatusToNext(task);
                }
            }
        }
        /// <summary>
        /// è¾“送线出库完成
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager station,Dt_Task task)
        {
            try
            {
                // æ‰“印成功信息,表示托盘已到达指定输送线并完成出库
                var logs = $"【{conveyorLine.DeviceName}】任务号:【{command.TaskNum}】,托盘条码:【{command.Barcode}】已到达【{station.stationChildCode}】输送线出库完成";
                ConsoleHelper.WriteSuccessLine(logs);
                _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
                WriteInfo(conveyorLine.DeviceName, logs);
                ConveyorLineTaskCommandWrite taskCommand = new ConveyorLineTaskCommandWrite()
                {
                    TaskNum = 100,
                    TargetAddress = Convert.ToInt16(station.stationNextChildCode),
                    WriteInteractiveSignal = (byte)Convert.ToSByte(3)
                };
                var result = SendCommand(taskCommand, conveyorLine, station.stationChildCode);
            }
            catch (Exception ex)
            {
            }
        }
        /// <summary>
        /// è¾“送线报警
        /// </summary>
@@ -362,7 +250,7 @@
            var task = _taskRepository.QueryFirst(x => x.TaskNum == command.TaskNum);
            conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal,Convert.ToSByte(3), station.stationChildCode);
            //conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal,Convert.ToSByte(3), station.stationChildCode);
        }
        public async Task LogAndWarn(string deviceName, string log, string color = "red")
@@ -374,35 +262,13 @@
        public bool SendCommand(ConveyorLineTaskCommandWrite taskCommand, CommonConveyorLine conveyorLine, string childDeviceCode)
        {
            conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, Convert.ToInt16(taskCommand.TargetAddress), childDeviceCode);
            conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, Convert.ToInt16(taskCommand.TargetAddress), childDeviceCode);
            Thread.Sleep(100);
            conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTaskNum, Convert.ToInt16(taskCommand.TaskNum), childDeviceCode);
            conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTaskNum, Convert.ToInt16(taskCommand.TaskNum), childDeviceCode);
            Thread.Sleep(100);
            conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(taskCommand.WriteInteractiveSignal), childDeviceCode);
            for (int i = 0; i < 6; i++)
            {
                ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode);
                if (command != null)
                {
                    if (command.TaskNum == taskCommand.TaskNum && command.TargetAddress == taskCommand.TargetAddress)
                    {
                        WriteInfo(conveyorLine.DeviceName, $"写入任务成功写入次数{i}写入任务【{JsonConvert.SerializeObject(taskCommand)}】");
                        return true;
                    }
                    if (command.TargetAddress != taskCommand.TargetAddress)
                    {
                        conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, Convert.ToInt16(taskCommand.TargetAddress), childDeviceCode);
                        Thread.Sleep(100);
                    }
                    if (command.TaskNum != taskCommand.TaskNum)
                    {
                        conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTaskNum, taskCommand.TaskNum, childDeviceCode); Thread.Sleep(100);
                    }
                }
            }
            WriteInfo(conveyorLine.DeviceName, $"写入任务失败任务号【{taskCommand.TaskNum}】托盘号【{taskCommand.Barcode}】目标地址【{taskCommand.TargetAddress}】当前节点【{childDeviceCode}】");
            return false;
            return true;
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -1,6 +1,7 @@
using HslCommunication;
using Mapster;
using Newtonsoft.Json;
using SqlSugar;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using WIDESEAWCS_Common;
@@ -11,6 +12,7 @@
using WIDESEAWCS_Model.BasicInfo;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_Tasks.ConveyorLineJob;
namespace WIDESEAWCS_Tasks
@@ -29,25 +31,15 @@
                case 2:
                case 3:
                    RequestInOrOutbound(command, conveyorLine, stationManager, task);
                    RequestNextAddress(command, conveyorLine, stationManager, task);
                    break;
                default:
                    break;
            }
        }
        public void HandleFinishTaskAsync(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, Dt_Task task=null)
        {
            var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == childDeviceCode && x.stationPLC == conveyorLine.DeviceCode);
            switch (stationManager.stationType)
            {
                case 4:
                case 5:
                    ConveyorLineInOrOutFinish(conveyorLine, command, stationManager, task);
                    break;
                case 7:
                    ConveyorLineOutFinish(conveyorLine, command, stationManager, task);
                    task = _taskService.QueryConveyorLineFinishTask(stationManager.stationChildCode, command.TaskNum);
                    if (task != null)
                    {
                        _taskService.UpdateTaskStatusToNext(task);
                    }
                    break;
                default:
                    break;
@@ -69,30 +61,50 @@
            var RGVName = string.Empty;
            if (stationManager.stationFloor == "1F")
            {
                var RGVOne = _taskRepository.QueryData(x => x.RGVName == "RGV01").ToList();
                var RGVTwo = _taskRepository.QueryData(x => x.RGVName == "RGV02").ToList();
                if (RGVOne.Count > RGVTwo.Count)
                var deviceCode = _deviceInfoRepository.Db.Queryable<Dt_DeviceInfo>().Where(x => x.DeviceStatus == "1" && x.DeviceRemark == "1F").Where(x => x.DeviceCode.Contains("RGV")).ToList().Select(x => x.DeviceCode).ToList();
                if (deviceCode != null && deviceCode.Count() > 0)
                {
                    RGVName = "RGV01";
                    if (deviceCode.Contains("RGV01") && deviceCode.Contains("RGV02"))
                    {
                        var RGVOne = _taskRepository.QueryData(x => x.RGVName == "RGV01").ToList();
                        var RGVTwo = _taskRepository.QueryData(x => x.RGVName == "RGV02").ToList();
                        if (RGVOne.Count > RGVTwo.Count)
                        {
                            RGVName = "RGV01";
                        }
                        else
                        {
                            RGVName = "RGV02";
                        }
                    }
                    else
                    {
                        RGVName = deviceCode[0];
                    }
                }
                else
                {
                    RGVName = "RGV02";
                    RGVName = "RGV01";
                }
            }
            Dt_Task task = new Dt_Task()
            else
            {
                TaskNum = _taskRepository.GetTaskNo().Result,
                TaskType = (int)TaskInboundTypeEnum.Inbound,
                TaskState = (int)TaskInStatusEnum.InNew,
                SourceAddress = childDeviceCode,
                Dispatchertime = DateTime.Now,
                Grade = 1, // è®¾ç½®é»˜è®¤ä¼˜å…ˆçº§ä¸º1
                Creater = "System",
                Floor = stationManager.stationFloor,
                RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
            };
                RGVName = "RGV03";
            }
                Dt_Task task = new Dt_Task()
                {
                    TaskNum = _taskRepository.GetTaskNo().Result,
                    TaskType = (int)TaskInboundTypeEnum.Inbound,
                    TaskState = (int)TaskInStatusEnum.InNew,
                    SourceAddress = childDeviceCode,
                    Dispatchertime = DateTime.Now,
                    Grade = 1, // è®¾ç½®é»˜è®¤ä¼˜å…ˆçº§ä¸º1
                    Creater = "System",
                    Floor = stationManager.stationFloor,
                    RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                };
            _taskRepository.AddData(task);
        }
    }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob/CommonRGVJob.cs
@@ -82,12 +82,6 @@
                CommonRGV commonRGV = (CommonRGV)context.JobDetail.JobDataMap.Get("JobParams");
                if (commonRGV != null)
                {
                    //if (!commonRGV.IsEventSubscribed)
                    //{
                    //    commonRGV.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订阅任务完成事件
                    //}
                    //commonRGV.CheckStackerCraneTaskCompleted();//防止任务完成事件监测超时,再手动触发一次
                    if (commonRGV.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted))
                    {
                        var x = commonRGV.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum);
@@ -146,16 +140,7 @@
            }
            return Task.CompletedTask;
        }
        /// <summary>
        /// ä»»åŠ¡å®Œæˆäº‹ä»¶è®¢é˜…çš„æ–¹æ³•
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e)
        {
            CommonRGV? commonRGV = sender as CommonRGV;
        }
        public void RGVTaskFinish(CommonRGV commonRGV, int TaskNum)
        {
@@ -182,7 +167,9 @@
                            if (device != null)
                            {
                                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                                //var x = conveyorLine.Communicator.Read<string>("DB1103.16");
                                Thread.Sleep(100);
                                var Barcode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.ConveyorLineBarcode, stationManager.stationChildCode);
                                if (Barcode == null)
@@ -195,6 +182,25 @@
                    }
                    else
                    {
                        if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting)
                        {
                            Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress&&x.stationType==7);
                            if (stationManager != null)
                            {
                                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManager.stationPLC);
                                if (device != null)
                                {
                                    CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                                    Thread.Sleep(100);
                                    var Barcode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.ConveyorLineBarcode, stationManager.stationChildCode);
                                    conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, Convert.ToInt16(stationManager.stationNextChildCode), stationManager.stationChildCode);
                                    Thread.Sleep(100);
                                    conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTaskNum, Convert.ToInt16(1000), stationManager.stationChildCode);
                                    Thread.Sleep(100);
                                    conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(2), stationManager.stationChildCode);
                                }
                            }
                        }
                        var content = _taskService.RGVTaskCompleted(TaskNum);
                    }
                }