b31d961a3f0bcd2e555ea12b76c30c453826deba..f23e0326aa05a1c5b47d4aec4c06e73d0d86b8e7
2025-07-29 huangxiaoqiang
代码提交
f23e03 对比 | 目录
2025-07-29 huangxiaoqiang
忽略文件
d48e44 对比 | 目录
已添加10个文件
已修改25个文件
17099 ■■■■■ 文件已修改
.gitignore 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/Home.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/LineInfocopy.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | 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/ProjectEvaluation/wideseawcs_server.strings.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 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Enum/TaskStatusEnum.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RGV/CommonRGV_FirstFloor.cs 489 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-28/Error_CommonStackerStationCraneJob_13-18-03.log 5967 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-28/Info_三号RGV_13-18-04.log 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-28/Info_二楼输送线_13-17-12.log 6212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-29/Error_CommonStackerStationCraneJob_17-26-55.log 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-29/Info_一号RGV_17-27-14.log 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-29/Info_调度任务控制_17-26-35.log 2232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/20250728/生成任务_log20250728.log 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 518 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob/CommonRGVJob.cs 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs 903 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/接口协议/~$智能立库系统与WCS接口(奥坦斯) -宽海(1).docx 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -3255,3 +3255,6 @@
/项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/库后输送线/Logs_20250724163141.txt
/项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Log/全局异常错误日志_1744023794.log
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a80b7f27-5afe-4e8f-adee-d243e50612fe.vsidx
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8e5c2ad7-336b-4cca-a14a-35776502c69d.vsidx
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c52e40b6-c48b-4b97-b45c-c5cb4389287a.vsidx
/项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d00db2db-d8c4-429a-bbb5-be0caac522d5.vsidx
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/Home.vue
@@ -1,4 +1,7 @@
<template>
    <div>
        111
    </div>
    <div class="title">
        <el-row :gutter="20" style="height:100%">
            <el-col :span="8">
@@ -600,36 +603,36 @@
            return Object.values(groups);
        },
        updateRGVOne(){
        if(this.RGV01.Automatic&&!this.RGV01.Fault&&!this.RGV01.Running){
        if(this.RGV01.Automatic=="联机模式"&&this.RGV01.Fault!="故障"&&this.RGV01.Running=="待机"){
          return 'dot-Automatic ';
        }
        else if(!this.RGV01.Fault&&this.RGV01.Running){
        else if(this.RGV01.Automatic=="联机模式"&&this.RGV01.Fault!="故障"&&this.RGV01.Running=="运行中"){
          return 'dot-Running ';
        }else if(this.RGV01.Fault){
        }else if(this.RGV01.Fault=="故障"){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
        }
        },
        updateRGVTwo(){
        if(this.RGV02.Automatic&&!this.RGV02.Fault&&!this.RGV02.Running){
            if(this.RGV02.Automatic=="联机模式"&&this.RGV02.Fault!="故障"&&this.RGV02.Running=="待机"){
          return 'dot-Automatic ';
        }
        else if(!this.RGV02.Fault&&this.RGV02.Running){
        else if(this.RGV02.Automatic=="联机模式"&&this.RGV01.Fault!="故障"&&this.RGV02.Running=="运行中"){
          return 'dot-Running ';
        }else if(this.RGV02.Fault){
        }else if(this.RGV02.Fault=="故障"){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
        }
        },
        updateRGV03(){
        if(this.RGV03.Automatic&&!this.RGV03.Fault&&!this.RGV03.Running){
            if(this.RGV03.Automatic=="联机模式"&&this.RGV03.Fault!="故障"&&this.RGV03.Running=="待机"){
          return 'dot-Automatic ';
        }
        else if(!this.RGV03.Fault&&this.RGV03.Running){
        else if(this.RGV03.Automatic=="联机模式"&&this.RGV03.Fault!="故障"&&this.RGV03.Running=="运行中"){
          return 'dot-Running ';
        }else if(this.RGV03.Fault){
        }else if(this.RGV03.Fault=="故障"){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue
@@ -144,12 +144,12 @@
                this.StackerCrane.DeviceName=x.DeviceName;
    },
    update(){
        if(this.StackerCrane.Automatic&&!this.StackerCrane.Fault&&!this.StackerCrane.Running){
      if(this.StackerCrane.Automatic=="联机模式"&&this.StackerCrane.Fault!="故障"&&this.StackerCrane.Running=="待机"){
          return 'dot-Automatic ';
        }
        else if(!this.StackerCrane.Fault&&this.StackerCrane.Running){
        else if(this.StackerCrane.Automatic=="联机模式"&&this.StackerCrane.Fault!="故障"&&this.StackerCrane.Running=="运行中"){
          return 'dot-Running ';
        }else if(this.StackerCrane.Fault){
        }else if(this.StackerCrane.Fault=="故障"){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/LineInfocopy.vue
@@ -1,10 +1,48 @@
<template>
        <div :class="update()" :style="{ left: left, top: top, marginBottom:0+'px',marginTop:15+'px'} ">
        <div :class="update()" :style="{ left: left, top: top, marginBottom:0+'px',marginTop:15+'px'} " @click="mouseClick" v-loading.fullscreen.lock="fullscreenLoading">
        <img v-if="imgType === '2'" src="../../public/lines.png" />
        <img v-if="imgType === '1'" src="../../public/lines2.png" />
        <label v-if="equipNo" class="equip-no">{{ equipNo }}</label>
    </div>
    <el-dialog v-model="dialogVisible" title="信息查看" :before-close="handleClose">
        <el-form ref="$form" :model="lineItemInfo" label-position="left" label-width="100px" size="medium">
            <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
                <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
                    <el-form-item label="设备编号:">
                        <j-el-description :value="equipNo" type="primary" ellipsis></j-el-description>
                    </el-form-item>
                </el-col>
                <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
                    <el-form-item label="是否有盘:">
                        <j-el-description :value="lineItemInfo.r_Line_HasPallet" type="primary"
                            ellipsis></j-el-description>
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
                <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
                    <el-form-item label="托盘条码:">
                        <j-el-description :value="lineItemInfo.r_Line_Barcode" type="primary"
                            ellipsis></j-el-description>
                    </el-form-item>
                </el-col>
                <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
                    <el-form-item label="报警代码:">
                        <j-el-description :value="lineItemInfo.r_Line_ErrorCode" type="primary"
                            ellipsis></j-el-description>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <template #footer>
            <div class="dialog-footer">
                <el-button @click="dialogVisible = false">取消</el-button>
                <el-button type="primary" @click="dialogVisible = false">
                    ç¡®è®¤
                </el-button>
            </div>
        </template>
    </el-dialog>
</template>
<script>
ÏîÄ¿´úÂë/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/ProjectEvaluation/wideseawcs_server.strings.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
@@ -7,36 +7,32 @@
      "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:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\basicinfo\\dt_stationmanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\basicinfo\\dt_stationmanager.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}"
    },
    {
      "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\\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\\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\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
      "AbsoluteMoniker": "D:0:0:{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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob_firstfloor\\commonrgv_firstfloorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob_firstfloor\\commonrgv_firstfloorjob.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:{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": [
@@ -46,7 +42,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 8,
          "SelectedChildIndex": 7,
          "Children": [
            {
              "$type": "Bookmark",
@@ -58,79 +54,67 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "Dt_StationManager.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "ViewState": "AgIAAHMAAAAAAAAAAAAAAHsAAAAVAAAAAAAAAA==",
              "DocumentIndex": 6,
              "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": "AgIAAEUAAAAAAAAAAAAewFQAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:35:03.533Z",
              "WhenOpened": "2025-07-29T03:10:22.341Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "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": "AgIAALUAAAAAAAAAAAAEwMgAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:31:58.229Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "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": "AgIAADYAAAAAAAAAAAAgwEYAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:29:44.585Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "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": "AgIAAG4AAAAAAAAAAAAAwIMAAACDAAAAAAAAAA==",
              "ViewState": "AgIAALEAAAAAAAAAAAAvwNIAAAAlAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.579Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-07-25T06:21:40.241Z"
              "DocumentIndex": 5,
              "Title": "CommonRGV_FirstFloorJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob_FirstFloor\\CommonRGV_FirstFloorJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob_FirstFloor\\CommonRGV_FirstFloorJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob_FirstFloor\\CommonRGV_FirstFloorJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob_FirstFloor\\CommonRGV_FirstFloorJob.cs",
              "ViewState": "AgIAAMsCAAAAAAAAAAD4v+QCAAA7AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T02:06:53.534Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "DocumentIndex": 2,
              "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": "AgIAAAAAAAAAAAAAAAAAAGsAAAAMAAAAAAAAAA==",
              "ViewState": "AgIAABQAAAAAAAAAAAAowC4AAAAxAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T04:21:01.123Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "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": "AgIAAJIAAAAAAAAAAAAAAKsAAACWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T04:13:17.74Z",
              "EditorCaption": ""
            },
            {
@@ -141,35 +125,35 @@
              "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": "AgIAAC4EAAAAAAAAAAAuwEIEAAAsAAAAAAAAAA==",
              "ViewState": "AgIAALkCAAAAAAAAAAAAAJwCAABKAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.559Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "DocumentIndex": 7,
              "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": "AgIAAFIAAAAAAAAAAAAnwGIAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T11:23:22.437Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "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": "AgIAAGgAAAAAAAAAAAAAAIIAAAAWAAAAAAAAAA==",
              "ViewState": "AgIAAMUAAAAAAAAAAAAUwNQAAABEAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:54:34.335Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "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": "AgIAAHIAAAAAAAAAAADwv4oAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:47.688Z",
              "EditorCaption": ""
            }
          ]
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,40 +3,36 @@
  "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_firstfloor\\commonrgv_firstfloorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob_firstfloor\\commonrgv_firstfloorjob.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:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\basicinfo\\dt_stationmanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\basicinfo\\dt_stationmanager.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}"
    },
    {
      "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\\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\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
      "AbsoluteMoniker": "D:0:0:{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:{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:{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": [
@@ -46,7 +42,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 8,
          "SelectedChildIndex": 4,
          "Children": [
            {
              "$type": "Bookmark",
@@ -58,118 +54,106 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "Dt_StationManager.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "ViewState": "AgIAAHMAAAAAAAAAAAAAAHsAAAAVAAAAAAAAAA==",
              "DocumentIndex": 6,
              "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": "AgIAAEUAAAAAAAAAAAAewFQAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:35:03.533Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "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": "AgIAALUAAAAAAAAAAAAEwMgAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:31:58.229Z",
              "WhenOpened": "2025-07-29T03:10:22.341Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "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": "AgIAADYAAAAAAAAAAAAgwEYAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:29:44.585Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "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": "AgIAAG4AAAAAAAAAAAAAwIMAAACDAAAAAAAAAA==",
              "ViewState": "AgIAALEAAAAAAAAAAAAvwNIAAAAlAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.579Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-07-25T06:21:40.241Z"
              "DocumentIndex": 0,
              "Title": "CommonRGV_FirstFloorJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob_FirstFloor\\CommonRGV_FirstFloorJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob_FirstFloor\\CommonRGV_FirstFloorJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob_FirstFloor\\CommonRGV_FirstFloorJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob_FirstFloor\\CommonRGV_FirstFloorJob.cs",
              "ViewState": "AgIAAL8AAAAAAAAAAAAtwNUAAAAcAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T02:06:53.534Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "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": "AgIAAAAAAAAAAAAAAAAAAGsAAAAMAAAAAAAAAA==",
              "ViewState": "AgIAABQAAAAAAAAAAAAowC4AAAAxAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T04:21:01.123Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "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": "AgIAAJIAAAAAAAAAAAAAAKsAAACWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T04:13:17.74Z",
              "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": "AgIAAC4EAAAAAAAAAAAuwEIEAAAsAAAAAAAAAA==",
              "ViewState": "AgIAAH0CAAAAAAAAAAAuwJwCAABKAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.559Z",
              "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": "AgIAAGgAAAAAAAAAAAAAAIIAAAAWAAAAAAAAAA==",
              "DocumentIndex": 7,
              "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": "AgIAAFIAAAAAAAAAAAAnwGIAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:54:34.335Z",
              "WhenOpened": "2025-07-28T11:23:22.437Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "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": "AgIAAHIAAAAAAAAAAADwv4oAAAAiAAAAAAAAAA==",
              "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": "AgIAAMUAAAAAAAAAAAAUwNQAAABEAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:47.688Z",
              "WhenOpened": "2025-07-24T03:54:34.335Z",
              "EditorCaption": ""
            }
          ]
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Enum/TaskStatusEnum.cs
@@ -82,6 +82,24 @@
        InHandFinish = 291,
        /// <summary>
        /// RGV退回
        /// </summary>
        [Description("RGV退回")]
        InRetuen = 292,
        /// <summary>
        /// æå‡æœºä»»åŠ¡
        /// </summary>
        [Description("提升机任务")]
        HoistNew = 293,
        /// <summary>
        /// æå‡æœºå…¥åº“执行中
        /// </summary>
        [Description("提升机入库执行中")]
        HoistInExecuting = 294,
        /// <summary>
        /// å…¥åº“任务挂起
        /// </summary>
        [Description("入库任务挂起")]
@@ -139,7 +157,7 @@
        RGV_Outdispatch = 125,
        /// <summary>
        /// RGV出库调度
        /// RGV出库调度完成
        /// </summary>
        [Description("RGV出库调度完成")]
        RGV_OutdispatchFinish = 130,
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -59,7 +59,7 @@
        /// </summary>
        /// <param name="taskDTOs">WMS任务对象集合</param>
        /// <returns>返回处理结果</returns>
        WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs);
        WebResponseContent ReceiveWMSTask([NotNull] WMSTaskDTO taskDTOs);
        /// <summary>
        /// èŽ·å–ä»»åŠ¡ä¿¡æ¯
@@ -96,6 +96,7 @@
        List<Dt_Task> QueryAllOutboundTasks(string deviceNo, string currentAddress = "");
        Dt_Task QueryRGVTask(string deviceNo);
        List<Dt_Task> QueryRGVTask();
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号查询移库任务
@@ -147,7 +148,7 @@
        /// <returns>返回任务实体对象,可能为null</returns>
        Dt_Task QueryRGVOutTask(string deviceNo);
        Dt_Task QueryRGVExecutingTask(string deviceNo);
        Dt_Task QueryRGVExecutingTask(string deviceNo,int TaskNum);
        
        /// <summary>
@@ -198,7 +199,8 @@
        /// <param name="taskNum">任务号</param>
        /// <returns>返回处理结果</returns>
        WebResponseContent RollbackTaskStatusToLast(int taskNum);
        WebResponseContent text(int taskNum);
        WebResponseContent TaskComplete();
        WebResponseContent RequestTask();
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs
@@ -62,7 +62,7 @@
        [ImporterHeader(Name = "备注")]
        [ExporterHeader(DisplayName = "备注")]
        [SugarColumn(IsNullable = false, ColumnDescription = "备注")]
        public string stationRemark { get; set; }
        public int stationRemark { get; set; }
        /// <summary>
        /// çº¿ä½“编号(子设备编号)
@@ -94,7 +94,7 @@
        [ImporterHeader(Name = "备注")]
        [ExporterHeader(DisplayName = "备注")]
        [SugarColumn(IsNullable = false, ColumnDescription = "备注")]
        public string remark { get; set; }
        public int remark { get; set; }
        /// <summary>
        /// çŠ¶æ€
        /// </summary>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -163,5 +163,21 @@
        [ExporterHeader(DisplayName = "WMS任务号")]
        [SugarColumn(IsNullable = false, ColumnDescription = "WMS任务号")]
        public string WMSTaskNum { get; set; }
        /// <summary>
        /// èµ·ç‚¹å·¥ä½
        /// </summary>
        [ImporterHeader(Name = "起点工位")]
        [ExporterHeader(DisplayName = "起点工位")]
        [SugarColumn(IsNullable = false, ColumnDescription = "起点工位")]
        public int SourceStation { get; set; }
        /// <summary>
        /// ç›®çš„工位
        /// </summary>
        [ImporterHeader(Name = "目的工位")]
        [ExporterHeader(DisplayName = "目的工位")]
        [SugarColumn(IsNullable = false, ColumnDescription = "目的工位")]
        public int TargetStation { get; set; }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs
@@ -40,5 +40,10 @@
        /// è®¾å¤‡ç±»åž‹
        /// </summary>
        public string DeviceType { get; set; }
        /// <summary>
        /// å¯ç”¨/禁用
        /// </summary>
        public string Enable { get; set; }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs
@@ -41,6 +41,12 @@
        public int Id { get; set; }
        /// <summary>
        /// è°ƒåº¦è¡¨ä¸»é”®
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "调度表主键")]
        public int? DispatchId { get; set; }
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        [ImporterHeader(Name = "设备编号")]
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RGV/CommonRGV_FirstFloor.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,489 @@
using HslCommunication;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
using WIDESEAWCS_QuartzJob.StackerCrane;
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// ä¸€èˆ¬å †åž›æœºå®žçŽ°ç±»ï¼Œå®žçŽ°å †åž›æœºæŽ¥å£å±‚
    /// </summary>
    [Description("RGV_FirstFloor")]
    public class CommonRGV_FirstFloor : ICommonRGV
    {
        #region Private Member
        /// <summary>
        /// å®Œæˆä¿¡å·ç­‰å¾…æ—¶é—´
        /// </summary>
        private const int WaitTimeout = 20 * 6000;
        /// <summary>
        /// å®Œæˆä¿¡å·è¯»å–频率
        /// </summary>
        private const int ReadTimeout = 100;
        /// <summary>
        /// å †åž›æœºé€šè®¯å¯¹è±¡
        /// </summary>
        private BaseCommunicator _communicator;
        /// <summary>
        /// å †åž›æœºåè®®ä¿¡æ¯
        /// </summary>
        private readonly List<DeviceProDTO> _deviceProDTOs;
        /// <summary>
        /// å †åž›æœºåè®®æ˜Žç»†ä¿¡æ¯
        /// </summary>
        private readonly List<DeviceProtocolDetailDTO> _deviceProtocolDetailDTOs;
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        public readonly string _deviceCode;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public readonly string _deviceName;
        /// <summary>
        /// ä¸Šä¸€æ¬¡ä»»åŠ¡å·
        /// </summary>
        private int _lastTaskNum;
        private bool _isChecked = false;
        private bool _heartStatr = true;
        private bool _isConnected = true;
        #endregion Private Member
        #region Public Member
        /// <summary>
        /// å †åž›æœºé€šè®¯å¯¹è±¡
        /// </summary>
        public BaseCommunicator Communicator => _communicator;
        /// <summary>
        /// å †åž›æœºåè®®ä¿¡æ¯
        /// </summary>
        public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs;
        /// <summary>
        /// å †åž›æœºåè®®æ˜Žç»†ä¿¡æ¯
        /// </summary>
        public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
        /// <summary>
        /// è®¾å¤‡çŠ¶æ€(空闲/运行中...)
        /// </summary>
        public DeviceStatus Status => GetStatus();
        /// <summary>
        /// ä¸Šä¸€æ¬¡æ‰§è¡Œçš„任务号
        /// </summary>
        public int LastTaskNum => _lastTaskNum;
        /// <summary>
        /// å½“前正在执行的任务号
        /// </summary>
        public int CurrentTaskNum => GetCurrentTaskNum();
        /// <summary>
        /// å †åž›æœºçŠ¶æ€
        /// </summary>
        public StackerCraneStatus StackerCraneStatusValue => GetStackerCraneStatus();
        /// <summary>
        /// å †åž›æœºçŠ¶æ€ä¸­æ–‡è¯´æ˜Ž
        /// </summary>
        public string StackerCraneStatusDes => GetEnumDes(StackerCraneStatusValue);
        /// <summary>
        /// æ‰‹è‡ªåŠ¨çŠ¶æ€
        /// </summary>
        public StackerCraneAutoStatus StackerCraneAutoStatusValue => GetStackerCraneAutoStatus();
        /// <summary>
        /// æ‰‹è‡ªåŠ¨çŠ¶æ€ä¸­æ–‡è¯´æ˜Ž
        /// </summary>
        public string StackerCraneAutoStatusDes => GetEnumDes(StackerCraneAutoStatusValue);
        /// <summary>
        /// ä½œä¸šçŠ¶æ€
        /// </summary>
        public StackerCraneWorkStatus StackerCraneWorkStatusValue => GetStackerCraneWorkStatus();
        /// <summary>
        /// ä½œä¸šçŠ¶æ€ä¸­æ–‡è¯´æ˜Ž
        /// </summary>
        public string StackerCraneWorkStatusDes => GetEnumDes(StackerCraneWorkStatusValue);
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        public string DeviceCode => _deviceCode;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public string DeviceName => _deviceName;
        /// <summary>
        /// å †åž›æœºæ˜¯å¦æœ‰æ•…éšœ
        /// </summary>
        public bool IsFault => StackerCraneStatusValue == StackerCraneStatus.Fault;
        /// <summary>
        /// é€šè®¯æ˜¯å¦å·²è¿žæŽ¥
        /// </summary>
        public bool IsConnected => Communicator.IsConnected && _isConnected;
        /// <summary>
        /// å †åž›æœºä»»åŠ¡å®Œæˆäº‹ä»¶
        /// </summary>
        public event EventHandler<StackerCraneTaskCompletedEventArgs> StackerCraneTaskCompletedEventHandler;
        /// <summary>
        /// å †åž›æœºä»»åŠ¡å‘½ä»¤å¯¹è±¡
        /// </summary>
        public object StackerCraneTaskCommand { get; set; }
        /// <summary>
        /// å †åž›æœºå®Œæˆäº‹ä»¶æ˜¯å¦å·²è®¢é˜…
        /// </summary>
        public bool IsEventSubscribed => StackerCraneTaskCompletedEventHandler != null;
        /// <summary>
        /// å †åž›æœºä¸ŽMOM连接状态
        /// </summary>
        public bool StackerOnline { get; set; } = false;
        public int? LastTaskType { get; set; } = null;
        #endregion
        #region Constructor Function
        /// <summary>
        /// æž„造函数
        /// </summary>
        /// <param name="communicator">堆垛机通讯对象</param>
        /// <param name="deviceProDTOs">堆垛机协议信息</param>
        /// <param name="deviceProtocolDetailDTOs">堆垛机协议明细信息</param>
        /// <param name="deviceCode">设备编号</param>
        /// <param name="deviceName">设备名称</param>
        public CommonRGV_FirstFloor(BaseCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName)
        {
            _communicator = communicator;
            _deviceProDTOs = deviceProDTOs;
            _deviceProtocolDetailDTOs = deviceProtocolDetailDTOs;
            _deviceCode = deviceCode;
            _deviceName = deviceName;
            CheckConnect();
        }
        #endregion
        #region Private Method
        /// <summary>
        /// æ ¹æ®åè®®è¯»å–堆垛机状态
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        private DeviceStatus GetStatus()
        {
            if (IsFault)
            {
                return DeviceStatus.Fault;
            }
            else if (!IsConnected)
            {
                return DeviceStatus.Offline;
            }
            if (StackerCraneStatusValue == StackerCraneStatus.Normal && StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic)
            {
                if (StackerCraneWorkStatusValue == StackerCraneWorkStatus.Idle)
                {
                    return DeviceStatus.Idle;
                }
                else if (StackerCraneWorkStatusValue == StackerCraneWorkStatus.NoIdle || StackerCraneWorkStatusValue == StackerCraneWorkStatus.Unkonw)
                {
                    return DeviceStatus.Working;
                }
            }
            return DeviceStatus.Unkonw;
        }
        private int GetCurrentTaskNum()
        {
            //DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CurrentTaskNum));
            //return devicePro == null ? throw new Exception() : (int)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
            DeviceProDTO devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CurrentTaskNum)) ?? throw new Exception("未获取到当前任务号的信息");
            return (int)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
        }
        /// <summary>
        /// èŽ·å–å †åž›æœºè®¾å¤‡çŠ¶æ€
        /// </summary>
        /// <returns></returns>
        private StackerCraneStatus GetStackerCraneStatus()
        {
            return Enum.Parse<StackerCraneStatus>(GetStatus(nameof(StackerCraneStatus)));
        }
        /// <summary>
        /// èŽ·å–å †åž›æœºæ‰‹è‡ªåŠ¨çŠ¶æ€
        /// </summary>
        /// <returns></returns>
        private StackerCraneAutoStatus GetStackerCraneAutoStatus()
        {
            return Enum.Parse<StackerCraneAutoStatus>(GetStatus(nameof(StackerCraneAutoStatus)));
        }
        /// <summary>
        /// èŽ·å–å †åž›æœºå·¥ä½œçŠ¶æ€
        /// </summary>
        /// <returns></returns>
        private StackerCraneWorkStatus GetStackerCraneWorkStatus()
        {
            return Enum.Parse<StackerCraneWorkStatus>(GetStatus(nameof(StackerCraneWorkStatus)));
        }
        /// <summary>
        /// èŽ·å–æžšä¸¾è¯´æ˜Ž
        /// </summary>
        /// <typeparam name="T">枚举泛型</typeparam>
        /// <param name="value"></param>
        /// <returns></returns>
        private string GetEnumDes<T>(T value) where T : Enum
        {
            FieldInfo? fieldInfo = typeof(T).GetField(value.ToString());
            if (fieldInfo != null)
            {
                DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                if (descriptionAttribute != null)
                {
                    return descriptionAttribute.Description;
                }
                return "未定义";
            }
            return "未知";
        }
        /// <summary>
        /// æ ¹æ®åè®®å‚数类型获取状态
        /// </summary>
        /// <param name="protocolParamType">协议参数类型</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        private string GetStatus(string protocolParamType)
        {
            if (Communicator.IsConnected)
            {
                List<DeviceProDTO> devicePros = _deviceProDTOs.Where(x => x.DeviceProParamType == protocolParamType).ToList();
                if (devicePros.Count == 0)
                {
                    throw new Exception("未获取到协议信息");
                }
                for (int i = 0; i < devicePros.Count; i++)
                {
                    object readStatus = Communicator.ReadAsObj(devicePros[i].DeviceProAddress, devicePros[i].DeviceDataType);
                    //todo åè®®æ˜Žç»†ä¿¡æ¯æœªèŽ·å–åˆ°æ—¶æŠ›å‡ºå¼‚å¸¸
                    DeviceProtocolDetailDTO? deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamName) ?? throw new Exception();
                    deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamType && x.ProtocalDetailValue.Equals(readStatus.ToString()));
                    if (deviceProtocolDetail != null)
                    {
                        return deviceProtocolDetail.ProtocolDetailType;
                    }
                    return StackerCraneStatus.Fault.ToString();
                }
            }
            //todo é€šè®¯æœªè¿žæŽ¥æ—¶æŠ›å‡ºå¼‚常
            return StackerCraneStatus.Fault.ToString();
        }
        /// <summary>
        /// æ¯”较两个值是否相等。
        /// </summary>
        /// <param name="value">第一个值。</param>
        /// <param name="paramValue">第二个值。</param>
        /// <returns>返回比较结果。</returns>
        private bool Compare(object value, object paramValue)
        {
            return value.Equals(paramValue);
        }
        private void CheckConnect()
        {
            Task.Run(async () =>
            {
                while (_heartStatr)
                {
                    try
                    {
                        DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault();
                        if (devicePro == null)
                            _isConnected = false;
                        else
                            Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
                        _isConnected = true;
                    }
                    catch (Exception ex)
                    {
                        _isConnected = false;
                    }
                    //Thread.Sleep(500);
                    await Task.Delay(500);
                }
            });
        }
        #endregion
        #region Public Method
        /// <summary>
        /// å‘送任务命令
        /// </summary>
        /// <param name="command">任务命令</param>
        /// <returns></returns>
        public bool SendCommand<T>(T command) where T : IDataTransfer, new()
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
            if (devicePro == null)
            {
                return false;
            }
            if (Communicator.WriteCustomer(devicePro.DeviceProAddress, command))
            {
                StackerCraneTaskCommand = command;
                CheckStackerCraneTaskCompleted();
                return true;
            }
            return false;
        }
        private readonly object _lockObject = new();
        /// <summary>
        /// ç›‘测堆垛机任务是否完成(防止任务完成事件监测超时,定义手动触发功能)
        /// </summary>
        public void CheckStackerCraneTaskCompleted()
        {
            // ä½¿ç”¨é”ç¡®ä¿åŒä¸€æ—¶é—´åªæœ‰ä¸€ä¸ªçº¿ç¨‹å¯ä»¥è¿›å…¥è¯¥æ–¹æ³•
            lock (_lockObject)
            {
                if (_isChecked)
                    return;
                _isChecked = true;
                Task.Run(() =>
                {
                    try
                    {
                        DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(RGVTaskCompleted));
                        if (devicePro != null)
                        {
                            DeviceProtocolDetailDTO? deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePro.DeviceProParamName && x.ProtocolDetailType == RGVTaskCompleted.WorkCompleted.ToString());
                            if (deviceProtocolDetail != null)
                            {
                                OperateResult<TimeSpan> operateResult = new OperateResult<TimeSpan>();
                                TypeCode typeCode = SiemensDBDataType.GetTypeCode(devicePro.DeviceDataType);
                                switch (typeCode)
                                {
                                    case TypeCode.Boolean:
                                        operateResult = Communicator.Wait(devicePro.DeviceProAddress, ReadTimeout, WaitTimeout, Convert.ToBoolean(deviceProtocolDetail.ProtocalDetailValue));
                                        break;
                                    case TypeCode.Byte:
                                        operateResult = Communicator.Wait(devicePro.DeviceProAddress, ReadTimeout, WaitTimeout, Convert.ToByte(deviceProtocolDetail.ProtocalDetailValue));
                                        break;
                                    case TypeCode.Int16:
                                        operateResult = Communicator.Wait(devicePro.DeviceProAddress, ReadTimeout, WaitTimeout, Convert.ToInt16(deviceProtocolDetail.ProtocalDetailValue));
                                        break;
                                    case TypeCode.Int32:
                                        operateResult = Communicator.Wait(devicePro.DeviceProAddress, ReadTimeout, WaitTimeout, Convert.ToInt32(deviceProtocolDetail.ProtocalDetailValue));
                                        break;
                                    case TypeCode.UInt16:
                                        operateResult = Communicator.Wait(devicePro.DeviceProAddress, ReadTimeout, WaitTimeout, Convert.ToUInt16(deviceProtocolDetail.ProtocalDetailValue));
                                        break;
                                    case TypeCode.UInt32:
                                        operateResult = Communicator.Wait(devicePro.DeviceProAddress, ReadTimeout, WaitTimeout, Convert.ToUInt32(deviceProtocolDetail.ProtocalDetailValue));
                                        break;
                                    default:
                                        break;
                                }
                                int taskNum = CurrentTaskNum;
                                if (operateResult.IsSuccess)
                                {
                                    StackerCraneTaskCompletedEventArgs args = new(taskNum);
                                    StackerCraneTaskCompletedEventHandler?.Invoke(this, args);
                                    _lastTaskNum = taskNum;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                    finally
                    {
                        _isChecked = false;
                    }
                });
            }
        }
        /// <summary>
        /// æ ¹æ®å‚数名称读取堆垛机对应的数据。
        /// </summary>
        /// <typeparam name="TEnum">参数名称枚举类型。</typeparam>
        /// <typeparam name="TRsult">读取结果的返回值类型。</typeparam>
        /// <param name="value">参数名称。</param>
        /// <returns>返回读取到的数据。</returns>
        /// <exception cref="Exception"></exception>
        public TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString());
            return devicePro == null ? throw new Exception() : (TRsult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
        }
        /// <summary>
        /// ä¸Žè®¾å¤‡çš„心跳
        /// </summary>
        public void Heartbeat()
        {
        }
        /// <summary>
        /// æ ¹æ®å‚数名称写入堆垛机对应的数据。
        /// </summary>
        /// <typeparam name="TEnum">参数名称枚举类型。</typeparam>
        /// <typeparam name="TValue">要写入的数据类型。</typeparam>
        /// <param name="enum">参数名称。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>返回写入成功或失败</returns>
        /// <exception cref="Exception"></exception>
        public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value)
            where TEnum : Enum
            where TValue : notnull
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString());
            return devicePro == null ? throw new Exception() : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
        }
        public void Dispose()
        {
            _heartStatr = false;
            _communicator.Dispose();
            GC.SuppressFinalize(this);
        }
        #endregion
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs
@@ -55,7 +55,7 @@
        /// <returns>返回调度服务JobDTO集合。</returns>
        public List<DispatchInfoDTO> QueryDispatchInfos()
        {
            return Db.Queryable<Dt_DispatchInfo, Dt_DeviceInfo>((a, b) => a.JobGroup == b.DeviceType && b.DeviceStatus == ((int)DeviceStatusEnum.Enable).ToString()).Select((a, b) => new DispatchInfoDTO
            return Db.Queryable<Dt_DispatchInfo>().LeftJoin<Dt_DeviceInfo>((a, b) => a.Id == b.DispatchId).Select((a, b) => new DispatchInfoDTO
            {
                JobGroup = a.JobGroup,
                AssemblyName = a.AssemblyName,
@@ -71,8 +71,9 @@
                ModifyDate = a.ModifyDate,
                Name = a.Name,
                Remark = a.Remark,
                DeviceType = b.DeviceType
            }).ToList();
                DeviceType = b.DeviceType,
                Enable = (b.DeviceStatus) ?? (((int)DeviceStatusEnum.Enable).ToString())
            }).ToList().Where(b => b.Enable == ((int)DeviceStatusEnum.Enable).ToString()).ToList();
        }
        public async Task<WebResponseContent> GetDispatchInfosAsync()
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -22,7 +22,7 @@
        }
        [HttpPost, HttpGet, Route("ReceiveTask"), AllowAnonymous]
        public WebResponseContent ReceiveWMSTask([FromBody] List<WMSTaskDTO> taskDTOs)
        public WebResponseContent ReceiveWMSTask([FromBody] WMSTaskDTO taskDTOs)
        {
            return Service.ReceiveWMSTask(taskDTOs);
        }
@@ -63,12 +63,15 @@
            return Service.RollbackTaskStatusToLast(taskNum);
        }
        [HttpPost, HttpGet, Route("text")]
        public WebResponseContent text(int taskNum)
        [HttpPost, HttpGet, Route("TaskComplete"), AllowAnonymous]
        public WebResponseContent TaskComplete()
        {
            return Service.text(taskNum);
            return Service.TaskComplete();
        }
        [HttpPost, HttpGet, Route("RequestTask"), AllowAnonymous]
        public WebResponseContent RequestTask()
        {
            return Service.RequestTask();
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
@@ -82,7 +82,7 @@
builder.Services.AddIpPolicyRateLimitSetup(builder.Configuration);//IPLimit限流 å¯åŠ¨æœåŠ¡
builder.Services.AddScoped<UseServiceDIAttribute>();
builder.Services.AddScoped<CommonRGVJob>();
//builder.Services.AddScoped<CommonRGV_FirstFloorJob>();
builder.Services.AddSession();
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-28/Error_CommonStackerStationCraneJob_13-18-03.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-28/Info_ÈýºÅRGV_13-18-04.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
【2025/7/28 13:18:04】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":92,"ReadCount":6}】
【2025/7/28 13:34:16】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":93,"ReadCount":6}】
【2025/7/28 13:36:07】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":11,"TaskType":4,"Spare":0,"TaskNum":93,"ReadCount":6}】
【2025/7/28 13:41:54】
写入任务成功写入次数0写入任务【{"PickupLocation":12,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":94,"ReadCount":6}】
【2025/7/28 13:42:19】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":14,"TaskType":4,"Spare":0,"TaskNum":94,"ReadCount":6}】
【2025/7/28 13:52:34】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":95,"ReadCount":6}】
【2025/7/28 13:53:18】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":11,"TaskType":4,"Spare":0,"TaskNum":95,"ReadCount":6}】
【2025/7/28 13:59:52】
写入任务成功写入次数0写入任务【{"PickupLocation":12,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":96,"ReadCount":6}】
【2025/7/28 14:00:17】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":15,"TaskType":4,"Spare":0,"TaskNum":96,"ReadCount":6}】
【2025/7/28 15:43:45】
写入任务成功写入次数0写入任务【{"PickupLocation":15,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":142,"ReadCount":6}】
【2025/7/28 15:44:36】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":11,"TaskType":4,"Spare":0,"TaskNum":142,"ReadCount":6}】
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-28/Info_¶þÂ¥ÊäËÍÏß_13-17-12.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-29/Error_CommonStackerStationCraneJob_17-26-55.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
【2025/7/29 17:26:55】
test
错误信息:Object reference not set to an instance of an object.
错误源:WIDESEAWCS_Tasks
错误堆栈:   at WIDESEAWCS_Tasks.CommonRGV_FirstFloorJob.ConvertToRGVTaskCommand(Dt_Task task) in E:\GET\AoTanSiWCS\项目代码\WCS\WIDESEAWCS_Server\WIDESEAWCS_Tasks\RGVJob_FirstFloor\CommonRGV_FirstFloorJob.cs:line 809
   at WIDESEAWCS_Tasks.CommonRGV_FirstFloorJob.Execute(IJobExecutionContext context) in E:\GET\AoTanSiWCS\项目代码\WCS\WIDESEAWCS_Server\WIDESEAWCS_Tasks\RGVJob_FirstFloor\CommonRGV_FirstFloorJob.cs:line 125
错误类型:System.NullReferenceException
错误方法:WIDESEAWCS_Tasks.RGVJob.RGVTaskCommand ConvertToRGVTaskCommand(WIDESEAWCS_Model.Models.Dt_Task)
【2025/7/29 17:27:39】
test
错误信息:Object reference not set to an instance of an object.
错误源:WIDESEAWCS_Tasks
错误堆栈:   at WIDESEAWCS_Tasks.CommonRGV_FirstFloorJob.Execute(IJobExecutionContext context)
错误类型:System.NullReferenceException
错误方法:System.Threading.Tasks.Task Execute(Quartz.IJobExecutionContext)
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-29/Info_Ò»ºÅRGV_17-27-14.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
【2025/7/29 17:27:14】
写入任务成功写入次数0写入任务【{"PickupLocation":22,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":1,"ReadCount":6}】
【2025/7/29 17:27:56】
写入任务成功写入次数0写入任务【{"PickupLocation":22,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":1,"ReadCount":6}】
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-29/Info_µ÷¶ÈÈÎÎñ¿ØÖÆ_17-26-35.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,2232 @@
【2025/7/29 17:26:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【{"TaskId":2075,"TaskNum":1,"PalletCode":null,"Roadway":null,"TaskType":200,"TaskState":200,"SourceAddress":"1013","TargetAddress":null,"CurrentAddress":null,"NextAddress":null,"ExceptionMessage":null,"Grade":1,"Dispatchertime":null,"Remark":null,"Floor":"1F","RGVName":null,"WMSTaskNum":null,"SourceStation":8,"TargetStation":0,"Creater":"admin","CreateDate":"2025-07-29T17:22:09","Modifier":null,"ModifyDate":null}】】
【2025/7/29 17:26:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【{"TaskId":2075,"TaskNum":1,"PalletCode":null,"Roadway":null,"TaskType":200,"TaskState":200,"SourceAddress":"1013","TargetAddress":null,"CurrentAddress":null,"NextAddress":null,"ExceptionMessage":null,"Grade":1,"Dispatchertime":null,"Remark":null,"Floor":"1F","RGVName":null,"WMSTaskNum":null,"SourceStation":8,"TargetStation":0,"Creater":"admin","CreateDate":"2025-07-29T17:22:09","Modifier":null,"ModifyDate":null}】】
【2025/7/29 17:27:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【{"TaskId":2075,"TaskNum":1,"PalletCode":null,"Roadway":null,"TaskType":200,"TaskState":200,"SourceAddress":"1013","TargetAddress":null,"CurrentAddress":null,"NextAddress":null,"ExceptionMessage":null,"Grade":1,"Dispatchertime":null,"Remark":null,"Floor":"1F","RGVName":null,"WMSTaskNum":null,"SourceStation":8,"TargetStation":0,"Creater":"admin","CreateDate":"2025-07-29T17:22:09","Modifier":null,"ModifyDate":null}】】
【2025/7/29 17:28:06】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:28:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:10】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:12】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:18】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:20】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:20】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:29:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:30:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:28】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:31:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:24】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:24】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:32:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:02】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:02】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:50】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:50】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:33:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:34:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:35:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:36:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:37:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:38:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:36】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:39:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:29】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:31】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:33】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:35】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:37】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:39】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:41】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:43】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:45】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:47】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:49】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:51】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:53】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:55】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:57】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:40:59】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:01】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:03】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:05】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:07】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:09】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:11】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:13】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:15】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:17】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:19】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:21】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:23】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:25】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
【2025/7/29 17:41:27】
【RGV02工作模式:【True】作业状态:【False】设备状态:【False】是否有货:【False】返回任务:【null】】
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/20250728/Éú³ÉÈÎÎñ_log20250728.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
时间:2025/7/28 12:32:18
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:Object reference not set to an instance of an object.","Data":null,"DevMessage":null}
时间:2025/7/28 12:35:26
{"Status":false,"Code":0,"Message":"未找到该托盘【123】任务","Data":null,"DevMessage":null}
时间:2025/7/28 12:35:50
{"Status":false,"Code":0,"Message":"未找到该托盘【123】任务","Data":null,"DevMessage":null}
时间:2025/7/28 12:36:22
{"Status":false,"Code":0,"Message":"未找到该托盘【123】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:05:32
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:06:46
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:06:53
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:07:03
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:07:19
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:07:22
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:07:23
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:07:24
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:07:25
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:07:30
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:07:31
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:36:05
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/28 13:39:59
{"Status":false,"Code":0,"Message":"未找到出库站台信息","Data":null,"DevMessage":null}
时间:2025/7/28 13:40:21
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/28 13:52:56
{"Status":false,"Code":0,"Message":"未找到该托盘【123456】任务","Data":null,"DevMessage":null}
时间:2025/7/28 13:53:15
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/28 13:58:15
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/28 15:39:09
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -16,6 +16,7 @@
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using AutoMapper;
using HslCommunication;
using Mapster;
using Newtonsoft.Json;
using SqlSugar;
@@ -94,194 +95,201 @@
        /// </summary>
        /// <param name="taskDTOs">WMS任务对象集合</param>
        /// <returns>返回处理结果</returns>
        public WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs)
        public WebResponseContent ReceiveWMSTask([NotNull] WMSTaskDTO taskDTOs)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {// åˆ›å»ºä¸€ä¸ªDt_Task类型的列表用于存储转换后的任务数据
            {
                List<Dt_Task> tasks = new List<Dt_Task>();
                // éåŽ†ä¼ å…¥çš„WMSTaskDTO列表
                foreach (var item in taskDTOs)
                // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå‡ºåº“ä»»åŠ¡
                if (taskDTOs.TaskType == "2")
                {
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå‡ºåº“ä»»åŠ¡
                    if (item.TaskType == "2")
                    if (Convert.ToInt32(taskDTOs.EndPoint) > 1999 && Convert.ToInt32(taskDTOs.EndPoint) < 3000)
                    {
                        if (Convert.ToInt32(item.EndPoint) > 1999 && Convert.ToInt32(item.EndPoint) < 3000)
                        Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.EndPoint);
                        if (stationManagerStart == null)
                        {
                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.EndPoint);
                            if (stationManagerStart == null)
                            {
                                return content.Error("未找到出库站台信息");
                            }
                            Dt_Task taskIn = new Dt_Task()
                            {
                                TaskNum = BaseDal.GetTaskNo().Result,
                                Creater = "WMS",
                                WMSTaskNum = item.TaskId,
                                Grade = 1,
                                PalletCode = item.TPbarcode,
                                TaskType = (int)TaskOutboundTypeEnum.Outbound,
                                TaskState = (int)TaskOutStatusEnum.OutNew,
                                SourceAddress = item.BeginPoint,
                                CurrentAddress = item.BeginPoint,
                                Roadway = stationManagerStart.Roadway,
                                NextAddress = item.EndPoint,
                                TargetAddress = item.EndPoint,
                                Floor = stationManagerStart.stationFloor,
                                RGVName = ""
                            };
                            BaseDal.AddData(taskIn);
                            return content.Error("未找到出库站台信息");
                        }
                        else
                        Dt_Task taskIn = new Dt_Task()
                        {
                            string[] targetCodes = item.BeginPoint.Split("-");
                            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 == "1F").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,
                                Creater = "WMS",
                                WMSTaskNum = item.TaskId,
                                Grade = 1,
                                PalletCode = item.TPbarcode,
                                TaskType = (int)TaskOutboundTypeEnum.Outbound,
                                TaskState = (int)TaskOutStatusEnum.OutNew,
                                SourceAddress = item.BeginPoint,
                                CurrentAddress = item.BeginPoint,
                                Roadway = GetScCode(Convert.ToInt32(targetCodes[0])),
                                NextAddress = stationManager.stationChildCode,
                                TargetAddress = item.EndPoint,
                                RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                                Floor = stationManager.stationFloor,
                            };
                            BaseDal.AddData(taskOut);
                        }
                    }
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå…¥åº“ä»»åŠ¡
                    else if (item.TaskType == "1")
                    {
                        if (Convert.ToInt32(item.BeginPoint) > 1999 && Convert.ToInt32(item.BeginPoint) < 3000)
                        {
                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.BeginPoint);
                            if (stationManagerStart == null)
                            {
                                return content.Error("未找到出库站台信息");
                            }
                            Dt_Task taskIn = new Dt_Task()
                            {
                                TaskNum = BaseDal.GetTaskNo().Result,
                                Creater = "WMS",
                                WMSTaskNum = item.TaskId,
                                Grade = 1,
                                PalletCode = item.TPbarcode,
                                TaskType = (int)TaskInboundTypeEnum.Inbound,
                                TaskState = (int)TaskInStatusEnum.Line_InFinish,
                                SourceAddress = item.BeginPoint,
                                CurrentAddress = stationManagerStart.stationChildCode,
                                Roadway = stationManagerStart.Roadway,
                                NextAddress = item.EndPoint,
                                TargetAddress = item.EndPoint,
                                Floor = stationManagerStart.stationFloor,
                                RGVName = ""
                            };
                            BaseDal.AddData(taskIn);
                        }
                        else
                        {
                            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;
                                task.CurrentAddress = item.BeginPoint;
                                task.WMSTaskNum = item.TaskId;
                                task.TargetAddress = item.EndPoint;
                                string[] targetCodes = item.EndPoint.Split("-");
                                task.Roadway = GetScCode(Convert.ToInt32(targetCodes[0]));
                                Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 3 && x.stationFloor == task.Floor);
                                task.NextAddress = stationManager.stationChildCode;
                                BaseDal.UpdateData(task);
                            }
                            else
                            {
                                return content.Error($"未找到该托盘【{item.TPbarcode}】任务");
                            }
                        }
                    }
                    else if (item.TaskType == "3")
                    {
                        Dt_Task taskRelocation = new Dt_Task()
                        {
                            TaskType = (int)TaskRelocationTypeEnum.Relocation,
                            TaskState = (int)TaskRelocationStatusEnum.RelocationNew,
                            SourceAddress = item.BeginPoint,
                            CurrentAddress = item.BeginPoint,
                            NextAddress = item.EndPoint,
                            TargetAddress = item.EndPoint,
                            Grade = 3,
                            TaskNum = BaseDal.GetTaskNo().Result,
                            Creater = "WMS",
                            WMSTaskNum = taskDTOs.TaskId,
                            Grade = 1,
                            PalletCode = taskDTOs.TPbarcode,
                            TaskType = (int)TaskOutboundTypeEnum.Outbound,
                            TaskState = (int)TaskOutStatusEnum.OutNew,
                            SourceAddress = taskDTOs.BeginPoint,
                            CurrentAddress = taskDTOs.BeginPoint,
                            Roadway = stationManagerStart.Roadway,
                            NextAddress = taskDTOs.EndPoint,
                            TargetAddress = taskDTOs.EndPoint,
                            Floor = stationManagerStart.stationFloor,
                            RGVName = ""
                        };
                        BaseDal.AddData(taskRelocation);
                        BaseDal.AddData(taskIn);
                    }
                    else
                    {
                        return content.Error($"任务类型错误,未找到该任务类型,任务号:【{item.TaskId}】,任务类型:【{item.TaskType}】");
                        string[] targetCodes = taskDTOs.BeginPoint.Split("-");
                        Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.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")
                        {
                            RGVName = stationManager.RGVName;
                        }
                        Dt_Task taskOut = new Dt_Task()
                        {
                            TaskNum = BaseDal.GetTaskNo().Result,
                            Creater = "WMS",
                            WMSTaskNum = taskDTOs.TaskId,
                            Grade = 1,
                            PalletCode = taskDTOs.TPbarcode,
                            TaskType = (int)TaskOutboundTypeEnum.Outbound,
                            TaskState = (int)TaskOutStatusEnum.OutNew,
                            SourceAddress = taskDTOs.BeginPoint,
                            CurrentAddress = taskDTOs.BeginPoint,
                            Roadway = GetScCode(Convert.ToInt32(targetCodes[0])),
                            NextAddress = stationManager.stationChildCode,
                            TargetAddress = taskDTOs.EndPoint,
                            RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                            Floor = stationManager.stationFloor,
                            TargetStation= stationManagerEnd.remark,
                        };
                        BaseDal.AddData(taskOut);
                    }
                }
                // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå…¥åº“ä»»åŠ¡
                else if (taskDTOs.TaskType == "1")
                {
                    if (taskDTOs.BeginPoint == "3002")
                    {
                        Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.BeginPoint);
                        if (stationManagerStart == null)
                        {
                            return content.Error("未找到入库站台信息");
                        }
                        string[] targetCodes = taskDTOs.EndPoint.Split("-");
                        Dt_Task taskIn = new Dt_Task()
                        {
                            TaskNum = BaseDal.GetTaskNo().Result,
                            Creater = "WMS",
                            WMSTaskNum = taskDTOs.TaskId,
                            Grade = 1,
                            PalletCode = taskDTOs.TPbarcode,
                            TaskType = (int)TaskInboundTypeEnum.Inbound,
                            TaskState = (int)TaskInStatusEnum.HoistNew,
                            SourceAddress = taskDTOs.BeginPoint,
                            CurrentAddress = stationManagerStart.stationChildCode,
                            Roadway = GetScCode(Convert.ToInt32(targetCodes[0])),
                            NextAddress = stationManagerStart.stationNextChildCode,
                            TargetAddress = taskDTOs.EndPoint,
                            Floor = stationManagerStart.stationFloor,
                            RGVName = "RGV03"
                        };
                        BaseDal.AddData(taskIn);
                    }
                    else if (Convert.ToInt32(taskDTOs.BeginPoint) > 1999 && Convert.ToInt32(taskDTOs.BeginPoint) < 3000)
                    {
                        Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.BeginPoint);
                        if (stationManagerStart == null)
                        {
                            return content.Error("未找到出库站台信息");
                        }
                        Dt_Task taskIn = new Dt_Task()
                        {
                            TaskNum = BaseDal.GetTaskNo().Result,
                            Creater = "WMS",
                            WMSTaskNum = taskDTOs.TaskId,
                            Grade = 1,
                            PalletCode = taskDTOs.TPbarcode,
                            TaskType = (int)TaskInboundTypeEnum.Inbound,
                            TaskState = (int)TaskInStatusEnum.Line_InFinish,
                            SourceAddress = taskDTOs.BeginPoint,
                            CurrentAddress = stationManagerStart.stationChildCode,
                            Roadway = stationManagerStart.Roadway,
                            NextAddress = taskDTOs.EndPoint,
                            TargetAddress = taskDTOs.EndPoint,
                            Floor = stationManagerStart.stationFloor,
                            RGVName = ""
                        };
                        BaseDal.AddData(taskIn);
                    }
                    else
                    {
                        var task = BaseDal.QueryFirst(x => x.PalletCode == taskDTOs.TPbarcode);
                        if (task != null)
                        {
                            task.Creater = "WMS";
                            task.Grade = 1;
                            task.PalletCode = taskDTOs.TPbarcode;
                            task.TaskType = (int)TaskInboundTypeEnum.Inbound;
                            task.TaskState = (int)TaskInStatusEnum.RGV_IndispatchFinish;
                            task.CurrentAddress = taskDTOs.BeginPoint;
                            task.WMSTaskNum = taskDTOs.TaskId;
                            task.TargetAddress = taskDTOs.EndPoint;
                            string[] targetCodes = taskDTOs.EndPoint.Split("-");
                            task.Roadway = GetScCode(Convert.ToInt32(targetCodes[0]));
                            Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 3 && x.stationFloor == task.Floor);
                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway &&x.stationChildCode==taskDTOs.BeginPoint && x.stationFloor == task.Floor);
                            task.NextAddress = stationManager.stationChildCode;
                            task.SourceStation = stationManagerStart.remark;
                            task.TargetStation = stationManagerStart.stationRemark;
                            BaseDal.UpdateData(task);
                        }
                        else
                        {
                            return content.Error($"未找到该托盘【{taskDTOs.TPbarcode}】任务");
                        }
                    }
                }
                else if (taskDTOs.TaskType == "3")
                {
                    Dt_Task taskRelocation = new Dt_Task()
                    {
                        TaskType = (int)TaskRelocationTypeEnum.Relocation,
                        TaskState = (int)TaskRelocationStatusEnum.RelocationNew,
                        SourceAddress = taskDTOs.BeginPoint,
                        CurrentAddress = taskDTOs.BeginPoint,
                        NextAddress = taskDTOs.EndPoint,
                        TargetAddress = taskDTOs.EndPoint,
                        Grade = 3,
                    };
                    BaseDal.AddData(taskRelocation);
                }
                else
                {
                    return content.Error($"任务类型错误,未找到该任务类型,任务号:【{taskDTOs.TaskId}】,任务类型:【{taskDTOs.TaskType}】");
                }
                _taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskId).ToList(), "接收WMS任务");
                content = WebResponseContent.Instance.OK("成功");
@@ -329,8 +337,8 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.WMSTaskNum == taskDTO.TaskId || x.Roadway == taskDTO.WhCode);
                Dt_Task_Hty taskHty = _taskHtyRepository.QueryFirst(x => x.WMSTaskNum == taskDTO.TaskId || x.Roadway == taskDTO.WhCode);
                Dt_Task task = BaseDal.QueryFirst(x => x.WMSTaskNum == taskDTO.TaskId && x.Roadway == taskDTO.WhCode);
                Dt_Task_Hty taskHty = _taskHtyRepository.QueryFirst(x => x.WMSTaskNum == taskDTO.TaskId && x.Roadway == taskDTO.WhCode);
                if (task != null)
                {
                    return content.OK(data: new WMSTaskDTO()
@@ -458,9 +466,9 @@
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        public Dt_Task QueryRGVExecutingTask(string deviceNo)
        public Dt_Task QueryRGVExecutingTask(string deviceNo,int TaskNum)
        {
            return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish);
            return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish && x.TaskNum == TaskNum && x.RGVName == deviceNo);
        }
        /// <summary>
@@ -512,6 +520,11 @@
        public Dt_Task QueryRGVTask(string deviceNo)
        {
            return BaseDal.QueryFirst(x => x.RGVName == deviceNo && ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish)), TaskOrderBy);
        }
        public List<Dt_Task> QueryRGVTask()
        {
            return BaseDal.QueryData(x => ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish) && x.Floor == "1F"), TaskOrderBy);
        }
        /// <summary>
@@ -653,6 +666,7 @@
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode == task.NextAddress);
                        task.CurrentAddress = task.NextAddress;
                        task.NextAddress = task.TargetAddress;
                        task.SourceStation = stationManager.stationRemark;
                    }
                    if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
@@ -725,25 +739,26 @@
                if (task.TaskState == (int)TaskInStatusEnum.RGV_Indispatch)
                {
                    //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                    //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                    //var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue;
                    //var keys = new Dictionary<string, object>()
                    //{
                    //    {"TPbarcode", Barcode},
                    //    {"WhCode", "1001"},
                    //    {"BeginPoint", task.SourceAddress}
                    //};
                    //if (wmsBase == null || requestTask == null)
                    //{
                    //    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                    //}
                    //var wmsIpAddress = wmsBase + requestTask;
                    //var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, keys.ToString()).Result;
                    var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                    var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                    var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue;
                    WMSTaskDTO taskDTO = new WMSTaskDTO()
                    {
                        TPbarcode = Barcode,
                        WhCode = "1001",
                        BeginPoint = task.SourceAddress
                    };
                    if (wmsBase == null || requestTask == null)
                    {
                        throw new InvalidOperationException("WMS IP æœªé…ç½®");
                    }
                    var wmsIpAddress = wmsBase + requestTask;
                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                    //if (result != null)
                    //{
                        task.TaskState = (int)TaskInStatusEnum.RGV_InAwaitWMS;
                    task.TaskState = (int)TaskInStatusEnum.RGV_InAwaitWMS;
                        task.PalletCode = Barcode;
                        task.ModifyDate = DateTime.Now;
                        BaseDal.UpdateData(task);
@@ -768,6 +783,18 @@
                    BaseDal.UpdateData(task);
                }
                else if (task.TaskState == (int)TaskInStatusEnum.InRetuen)
                {
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
                    task_Hty.TaskId = 0;
                    BaseDal.DeleteData(task);
                    _taskHtyRepository.AddData(task_Hty);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV出库完成");
                }
                else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting)
                {
                    task.TaskState = (int)TaskOutStatusEnum.OutFinish;
@@ -779,6 +806,27 @@
                    BaseDal.DeleteData(task);
                    _taskHtyRepository.AddData(task_Hty);
                    var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                    var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                    var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
                    WMSTaskDTO taskDTO = new WMSTaskDTO()
                    {
                        TaskId = task.WMSTaskNum,
                        TPbarcode = task.PalletCode,
                        WhCode = "1001",
                        BeginPoint = task.SourceAddress,
                        EndPoint = task.TargetAddress,
                        Results = "1"
                    };
                    if (wmsBase == null || requestTask == null)
                    {
                        throw new InvalidOperationException("WMS IP æœªé…ç½®");
                    }
                    var wmsIpAddress = wmsBase + requestTask;
                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV出库完成");
                }
                else
@@ -802,30 +850,6 @@
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                //var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
                //var keys = new Dictionary<string, object>()
                //    {
                //        {"TaskId", task.WMSTaskNum},
                //        {"TPbarcode", task.PalletCode},
                //        {"WhCode", "1001"},
                //        {"BeginPoint", task.SourceAddress},
                //        {"EndPoint", task.TargetAddress},
                //        {"Results", 1},
                //    };
                //if (wmsBase == null || requestTask == null)
                //{
                //    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                //}
                //var wmsIpAddress = wmsBase + requestTask;
                //var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, keys.ToString()).Result;
                //if (result != null)
                //{
                //    task.ExceptionMessage += "   " + content.Message;
                //}
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
                {
@@ -1081,12 +1105,62 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent text(int taskNum)
        public WebResponseContent TaskComplete()
        {
            WebResponseContent content = new WebResponseContent();
            var result = _stationManagerRepository.Db.Queryable<Dt_StationManager>()
                .Where(t => SqlFunc.Abs(t.LevelPointFist - taskNum) <= 10)
                .ToList();
            //var result = _stationManagerRepository.Db.Queryable<Dt_StationManager>()
            //    .Where(t => SqlFunc.Abs(t.LevelPointFist - taskNum) <= 1000)
            //    .ToList();
            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
            var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
            WMSTaskDTO taskDTO = new WMSTaskDTO()
            {
                TaskId="1",
                TPbarcode = "123456",
                WhCode = "1001",
                BeginPoint = "1013",
                EndPoint="1-1-1",
                Results="1"
            };
            if (wmsBase == null || requestTask == null)
            {
                throw new InvalidOperationException("WMS IP æœªé…ç½®");
            }
            var wmsIpAddress = wmsBase + requestTask;
            var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
            return content.OK(data: result);
        }
        public WebResponseContent RequestTask()
        {
            WebResponseContent content = new WebResponseContent();
            //var result = _stationManagerRepository.Db.Queryable<Dt_StationManager>()
            //    .Where(t => SqlFunc.Abs(t.LevelPointFist - taskNum) <= 1000)
            //    .ToList();
            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
            var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue;
            //var keys = new Dictionary<string, object>()
            //{
            //    {"TPbarcode", "123456"},
            //    {"WhCode", "1001"},
            //    {"BeginPoint", "1013"}
            //};
            WMSTaskDTO taskDTO = new WMSTaskDTO()
            {
                TPbarcode = "123456",
                WhCode = "1001",
                BeginPoint = "1013"
            };
            if (wmsBase == null || requestTask == null)
            {
                throw new InvalidOperationException("WMS IP æœªé…ç½®");
            }
            var wmsIpAddress = wmsBase + requestTask;
            var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
            return content.OK(data: result);
        }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -21,6 +21,8 @@
using Newtonsoft.Json;
using Quartz;
using System.Reflection;
using System.Text;
using System.Web;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
@@ -105,7 +107,8 @@
            try
            {
                ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode);
                //var Barcode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.ConveyorLineBarcode, station.stationChildCode);
                var Barcodea = conveyorLine.Communicator.Read("DB1103.2",5);
                string x=Encoding.UTF8.GetString(Barcodea);
                if (command != null)
                {
                    #region è°ƒç”¨äº‹ä»¶æ€»çº¿é€šçŸ¥å‰ç«¯
@@ -162,8 +165,21 @@
                var log = $"【{conveyorLine._deviceName}】站台【{station.stationChildCode}】请求取货";
                await LogAndWarn(conveyorLine.DeviceName, log);
                var task = _taskService.QueryConveyorLineTask(station.stationChildCode, command.TaskNum);
                if (station.stationChildCode == "3004")
                {
                    var taskIn = _taskRepository.QueryFirst(x => x.TaskNum == command.TaskNum && x.NextAddress == station.stationChildCode && x.TaskType == (int)TaskInboundTypeEnum.Inbound&&x.TaskState==(int)TaskInStatusEnum.HoistInExecuting);
                    if(taskIn != null)
                    {
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == taskIn.Roadway && x.stationType == 3 && x.stationFloor == taskIn.Floor);
                        taskIn.CurrentAddress = station.stationChildCode;
                        taskIn.NextAddress = stationManager.stationChildCode;
                        taskIn.TaskState = (int)TaskInStatusEnum.InNew;
                        _taskRepository.UpdateData(taskIn);
                    }
                }
                var task = _taskService.QueryConveyorLineTask(station.stationChildCode, command.TaskNum);
                await HandleNewTaskAsync(conveyorLine, command, station.stationChildCode, task);
            }
            catch (Exception ex)
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -2,6 +2,7 @@
using Mapster;
using Newtonsoft.Json;
using SqlSugar;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using WIDESEAWCS_Common;
@@ -12,8 +13,11 @@
using WIDESEAWCS_Model.BasicInfo;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_Tasks.ConveyorLineJob;
using WIDESEAWCS_Tasks.StackerCraneJob;
namespace WIDESEAWCS_Tasks
{
@@ -63,31 +67,7 @@
            var RGVName = string.Empty;
            if (stationManager.stationFloor == "1F")
            {
                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)
                {
                    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 = "RGV01";
                }
                RGVName = stationManager.RGVName;
            }
            else
            {
@@ -100,44 +80,100 @@
                TaskState = (int)TaskInStatusEnum.InNew,
                SourceAddress = childDeviceCode,
                Dispatchertime = DateTime.Now,
                Grade = 1, // è®¾ç½®é»˜è®¤ä¼˜å…ˆçº§ä¸º1
                Grade = 1,
                Creater = "System",
                Floor = stationManager.stationFloor,
                RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                RGVName = RGVName,
                SourceStation= stationManager.remark,
            };
            _taskRepository.AddData(task);
        }
        private void RequestWMSTask(CommonConveyorLine conveyorLine,  Dt_StationManager stationManager)
        {
            var Barcode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.ConveyorLineBarcode, stationManager.stationNextChildCode);
            if (Barcode == "")
            if (stationManager.stationChildCode == "3002")
            {
                conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal,Convert.ToSByte(3), stationManager.stationChildCode);
            }
            var task = _taskRepository.QueryFirst(x => x.PalletCode == Barcode);
            if (task != null)
            {
                DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceChildCode == stationManager.stationChildCode && x.DeviceProParamName == "ConveyorLineBarcode").FirstOrDefault();
                var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 5);
                string Barcode = Encoding.UTF8.GetString(x);
                if (Barcode == null)
                {
                    conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode);
                }
                var task = _taskRepository.QueryFirst(x => x.PalletCode == Barcode && x.TaskState == (int)TaskInStatusEnum.HoistNew);
                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 result = SendCommand(taskCommand, conveyorLine, stationManager.stationChildCode);
                    if (result)
                    {
                        task.TaskState = (int)TaskInStatusEnum.HoistInExecuting;
                        _taskRepository.UpdateData(task);
                    }
                }
                else
                {
                    var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                    var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                    var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue;
                    WMSTaskDTO taskDTO = new WMSTaskDTO()
                    {
                        TPbarcode = Barcode,
                        WhCode = "1001",
                        BeginPoint = stationManager.stationChildCode
                    };
                    if (wmsBase == null || requestTask == null)
                    {
                        throw new InvalidOperationException("WMS IP æœªé…ç½®");
                    }
                    var wmsIpAddress = wmsBase + requestTask;
                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                }
            }
            else
            {
                //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                //var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue;
                //var keys = new Dictionary<string, object>()
                //{
                //    {"TPbarcode", Barcode},
                //    {"WhCode", "1001"},
                //    {"BeginPoint", stationManager.stationChildCode}
                //};
                //if (wmsBase == null || requestTask == null)
                //{
                //    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                //}
                //var wmsIpAddress = wmsBase + requestTask;
                //var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, keys.ToString()).Result;
            }
                DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceChildCode == stationManager.stationChildCode && x.DeviceProParamName == "ConveyorLineBarcode").FirstOrDefault();
                var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 5);
                string Barcode = Encoding.UTF8.GetString(x);
                if (Barcode == "")
                {
                    conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode);
                }
                var task = _taskRepository.QueryFirst(x => x.PalletCode == Barcode);
                if (task != null)
                {
                }
                else
                {
                    var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                    var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                    var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue;
                    WMSTaskDTO taskDTO = new WMSTaskDTO()
                    {
                        TPbarcode = Barcode,
                        WhCode = "1001",
                        BeginPoint = stationManager.stationChildCode
                    };
                    if (wmsBase == null || requestTask == null)
                    {
                        throw new InvalidOperationException("WMS IP æœªé…ç½®");
                    }
                    var wmsIpAddress = wmsBase + requestTask;
                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                }
            }
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob/CommonRGVJob.cs
@@ -48,7 +48,7 @@
namespace WIDESEAWCS_Tasks
{
    [DisallowConcurrentExecution]
    public class CommonRGVJob :JobBase, IJob
    public class CommonRGVJob : JobBase, IJob
    {
        private readonly ITaskService _taskService;
        private readonly ITaskRepository _taskRepository;
@@ -84,7 +84,6 @@
                {
                    if (commonRGV.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted))
                    {
                        var x = commonRGV.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum);
                        RGVTaskFinish(commonRGV, commonRGV.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
                    }
@@ -161,7 +160,7 @@
                var task = _taskRepository.QueryFirst(x => x.TaskNum == TaskNum);
                if (task != null)
                {
                    if (task.TaskState == (int)TaskInStatusEnum.RGV_Indispatch)
                    if (task.TaskState == (int)TaskInStatusEnum.InRetuen)
                    {
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress);
                        if (stationManager != null)
@@ -170,12 +169,41 @@
                            if (device != null)
                            {
                                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                                Thread.Sleep(100);
                                var Barcode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.ConveyorLineBarcode, stationManager.stationChildCode);
                                conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode);
                                if (Barcode == null||Barcode=="")
                                var content = _taskService.RGVTaskCompleted(TaskNum);
                            }
                        }
                    }
                    if (task.TaskState == (int)TaskInStatusEnum.RGV_Indispatch)
                    {
                        if (task.SourceAddress == "3002")
                        {
                            task.TaskState = (int)TaskInStatusEnum.RGV_IndispatchFinish;
                            _taskRepository.UpdateData(task);
                            return;
                        }
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress);
                        if (stationManager != null)
                        {
                            IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManager.stationPLC);
                            if (device != null)
                            {
                                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                                Thread.Sleep(100);
                                DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceChildCode == stationManager.stationChildCode && x.DeviceProParamName == "ConveyorLineBarcode").FirstOrDefault();
                                var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 5);
                                string Barcode = Encoding.UTF8.GetString(x);
                                if (Barcode == null || Barcode == "")
                                {
                                    conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode);
                                    commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, Convert.ToSByte(stationManager.stationRemark));
                                    commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(task.TaskNum));
                                    //    commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(4));
                                    task.TaskState = (int)TaskInStatusEnum.InRetuen;
                                    _taskRepository.UpdateData(task);
                                    return;
                                }
                                var content = _taskService.RGVTaskCompleted(TaskNum, Barcode);
@@ -194,7 +222,6 @@
                                {
                                    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);
@@ -219,7 +246,7 @@
            Dt_Task task;
            if (InStock)
            {
                task = _taskService.QueryRGVExecutingTask(commonRGV.DeviceCode);
                task = _taskService.QueryRGVExecutingTask(commonRGV.DeviceCode, commonRGV.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
                if (task != null)
                {
                    return task;
@@ -277,11 +304,9 @@
            rgvTaskCommand.TaskNum = Convert.ToInt16(task.TaskNum);
            if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//判断是否是入库任务
            {
                //rgvTaskCommand.TaskType = (byte)Convert.ToSByte(16);
                //rgvTaskCommand.TaskType = (byte)Convert.ToSByte(64);   é€€å›ž
                if (task.TaskState == (int)TaskInStatusEnum.InNew)
                {
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress);
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.CurrentAddress);
                    rgvTaskCommand.TaskType = (byte)Convert.ToSByte(3);
                    rgvTaskCommand.PickupLocation = (byte)Convert.ToSByte(stationManager.stationRemark);
                }
@@ -299,7 +324,6 @@
            }
            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
            {
                if (task.TaskState == (int)TaskOutStatusEnum.Line_OutFinish)
                {
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.CurrentAddress);
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,903 @@
#region << ç‰ˆ æœ¬ æ³¨ é‡Š >>
/*----------------------------------------------------------------
 * å‘½åç©ºé—´ï¼šWIDESEAWCS_Tasks.ConveyorLineJob
 * åˆ›å»ºè€…:胡童庆
 * åˆ›å»ºæ—¶é—´ï¼š2024/8/2 16:13:36
 * ç‰ˆæœ¬ï¼šV1.0.0
 * æè¿°ï¼š
 *
 * ----------------------------------------------------------------
 * ä¿®æ”¹äººï¼š
 * ä¿®æ”¹æ—¶é—´ï¼š
 * ç‰ˆæœ¬ï¼šV1.0.1
 * ä¿®æ”¹è¯´æ˜Žï¼š
 *
 *----------------------------------------------------------------*/
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using AutoMapper;
using HslCommunication;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Quartz;
using SixLabors.ImageSharp.Drawing;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core.Caches;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.HttpContextUser;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.BasicInfo;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_SignalR;
using WIDESEAWCS_Tasks.ConveyorLineJob;
using WIDESEAWCS_Tasks.RGVJob;
using WIDESEAWCS_Tasks.StackerCraneJob;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
namespace WIDESEAWCS_Tasks
{
    [DisallowConcurrentExecution]
    public class CommonRGV_FirstFloorJob : JobBase, IJob
    {
        private readonly ITaskService _taskService;
        private readonly ITaskRepository _taskRepository;
        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
        private readonly IRouterService _routerService;
        private readonly IDt_StationManagerService _stationManagerService;
        private readonly IDt_StationManagerRepository _stationManagerRepository;
        private readonly IMapper _mapper;
        private readonly ICacheService _cacheService;
        private readonly INoticeService _noticeService;
        private static List<string>? userTokenIds;
        private static List<int>? userIds;
        public CommonRGV_FirstFloorJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IDt_StationManagerService stationManagerService, IMapper mapper, ICacheService cacheService, INoticeService noticeService, ITaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository)
        {
            _taskService = taskService;
            _taskExecuteDetailService = taskExecuteDetailService;
            _routerService = routerService;
            _stationManagerService = stationManagerService;
            _mapper = mapper;
            _cacheService = cacheService;
            _noticeService = noticeService;
            _taskRepository = taskRepository;
            _stationManagerRepository = stationManagerRepository;
        }
        public Task Execute(IJobExecutionContext context)
        {
            Console.WriteLine(DateTime.Now.ToString() + ",线程ID:" + Thread.CurrentThread.ManagedThreadId);
            try
            {
                //用这种方式能确保类型转换不会有问题
                //bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
                //if (flag && value != null && value is CommonRGV_FirstFloor device)
                //{
                IDevice? commonRGVFirst = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV01");
                IDevice? commonRGVSecond = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV02");
                #region  RGV01调度
                if (commonRGVFirst != null && commonRGVFirst is CommonRGV_FirstFloor FirstRgv)//这样能看出来传参到底哪里有问题
                {
                    if (FirstRgv.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted))
                    {
                        RGVTaskFinish(FirstRgv, FirstRgv.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
                    }
                    if (FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Running))
                    {
                        Dt_Task? task = GetTask(FirstRgv, FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock));
                        if (task != null)
                        {
                            var IsExecutingTask = DispatchExecutingTask(FirstRgv, task);
                            if (IsExecutingTask != null)
                            {
                                RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(task);
                                if (rgvTaskCommand != null)
                                {
                                    Thread.Sleep(1000);
                                    bool sendFlag = SendCommand(FirstRgv, rgvTaskCommand);
                                    if (sendFlag)
                                    {
                                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
                                    }
                                }
                            }
                        }
                        else
                        {
                            var taskNew = DispatchTask(FirstRgv);
                            if (taskNew != null)
                            {
                                RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(taskNew);
                                if (rgvTaskCommand != null)
                                {
                                    Thread.Sleep(1000);
                                    bool sendFlag = SendCommand(FirstRgv, rgvTaskCommand);
                                    if (sendFlag)
                                    {
                                        _taskService.UpdateTaskStatusToNext(taskNew.TaskNum);
                                    }
                                }
                            }
                        }
                    }
                    #region è°ƒç”¨äº‹ä»¶æ€»çº¿é€šçŸ¥å‰ç«¯
                    var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
                    if (tokenInfos != null && tokenInfos.Any())
                    {
                        var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
                        var userIds = tokenInfos?.Select(x => x.UserId).ToList();
                        string RGVAutoStatus(bool AutoStatus) => AutoStatus switch
                        {
                            true => "联机模式",
                            false => "单机模式",
                        };
                        string RGVWorkStatus(bool WorkStatus) => WorkStatus switch
                        {
                            true => "运行中",
                            false => "待机",
                        };
                        string RGVStatus(bool Status) => Status switch
                        {
                            true => "故障",
                            false => "正常",
                        };
                        object obj = new
                        {
                            Automatic = RGVAutoStatus(FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Automatic)),
                            Fault = RGVStatus(FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Fault)),
                            Running = RGVWorkStatus(FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Running)),
                            LevelPoint = FirstRgv.GetValue<RGVDBName, int>(RGVDBName.LevelPoint),
                            CurrentTaskNum = FirstRgv.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum),
                            FirstRgv.DeviceCode,
                            FirstRgv.DeviceName,
                        };
                        _noticeService.RGVData(userIds?.FirstOrDefault(), userTokenIds, new { FirstRgv.DeviceName, data = obj });
                    }
                    #endregion è°ƒç”¨äº‹ä»¶æ€»çº¿é€šçŸ¥å‰ç«¯
                }
                else
                {
                    if (commonRGVFirst == null)
                        Console.WriteLine($"RGV01未找到设备对象的值");
                    else
                        Console.WriteLine($"RGV01设备对象类型错误");
                }
                #endregion
                #region  RGV02调度
                if (commonRGVSecond != null && commonRGVFirst is CommonRGV_FirstFloor SecondRgv)//这样能看出来传参到底哪里有问题
                {
                    if (SecondRgv.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted))
                    {
                        RGVTaskFinish(SecondRgv, SecondRgv.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
                    }
                    if (SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Running))
                    {
                        Dt_Task? task = GetTask(SecondRgv, SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock));
                        if (task != null)
                        {
                            var IsExecutingTask = DispatchExecutingTask(SecondRgv, task);
                            RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(task);
                            if (rgvTaskCommand != null)
                            {
                                Thread.Sleep(1000);
                                bool sendFlag = SendCommand(SecondRgv, rgvTaskCommand);
                                if (sendFlag)
                                {
                                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                                }
                            }
                        }
                        else
                        {
                            var taskNew = DispatchTask(SecondRgv);
                            if (taskNew != null)
                            {
                                RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(taskNew);
                                if (rgvTaskCommand != null)
                                {
                                    Thread.Sleep(1000);
                                    bool sendFlag = SendCommand(SecondRgv, rgvTaskCommand);
                                    if (sendFlag)
                                    {
                                        _taskService.UpdateTaskStatusToNext(taskNew.TaskNum);
                                    }
                                }
                            }
                        }
                    }
                    #region è°ƒç”¨äº‹ä»¶æ€»çº¿é€šçŸ¥å‰ç«¯
                    var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
                    if (tokenInfos != null && tokenInfos.Any())
                    {
                        var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
                        var userIds = tokenInfos?.Select(x => x.UserId).ToList();
                        string RGVAutoStatus(bool AutoStatus) => AutoStatus switch
                        {
                            true => "联机模式",
                            false => "单机模式",
                        };
                        string RGVWorkStatus(bool WorkStatus) => WorkStatus switch
                        {
                            true => "运行中",
                            false => "待机",
                        };
                        string RGVStatus(bool Status) => Status switch
                        {
                            true => "故障",
                            false => "正常",
                        };
                        object obj = new
                        {
                            Automatic = RGVAutoStatus(SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Automatic)),
                            Fault = RGVStatus(SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Fault)),
                            Running = RGVWorkStatus(SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Running)),
                            LevelPoint = SecondRgv.GetValue<RGVDBName, int>(RGVDBName.LevelPoint),
                            CurrentTaskNum = SecondRgv.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum),
                            SecondRgv.DeviceCode,
                            SecondRgv.DeviceName,
                        };
                        _noticeService.RGVData(userIds?.FirstOrDefault(), userTokenIds, new { SecondRgv.DeviceName, data = obj });
                    }
                    #endregion è°ƒç”¨äº‹ä»¶æ€»çº¿é€šçŸ¥å‰ç«¯
                }
                else
                {
                    if (commonRGVSecond == null)
                        Console.WriteLine($"RGV02未找到设备对象的值");
                    else
                        Console.WriteLine($"RGV02设备对象类型错误");
                }
                #endregion
                //}
            }
            catch (Exception ex)
            {
                WriteError("CommonStackerStationCraneJob", "test", ex);
            }
            return Task.CompletedTask;
        }
        public Dt_Task DispatchExecutingTask(CommonRGV_FirstFloor commonRGV, Dt_Task task)
        {
            try
            {
                if (commonRGV.DeviceCode == "RGV01")
                {
                    CommonRGV_FirstFloor? commonRGVSecond = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV02") as CommonRGV_FirstFloor;
                    if (commonRGVSecond != null)
                    {
                        if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock))
                        {
                            if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000)
                            {
                                RGVTaskCommand command = new RGVTaskCommand()
                                {
                                    PickupLocation = (byte)Convert.ToSByte(15),
                                    TaskNum = Convert.ToInt16(1000),
                                    TaskType = (byte)Convert.ToSByte(1)
                                };
                                SendCommand(commonRGVSecond, command);
                            }
                            LogAndWarn("执行调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(task)}】】");
                            return task;
                        }
                        else if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault))
                        {
                            var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
                            if (taskSecond != null)
                            {
                                if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                {
                                    if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                    {
                                        if (task.TargetStation > taskSecond.SourceStation && task.TargetStation > taskSecond.TargetStation)
                                        {
                                            LogAndWarn("执行调度任务控制", $"【{commonRGV.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVSecond.DeviceCode}】任务【{JsonConvert.SerializeObject(taskSecond)}】{commonRGVSecond.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                            return task;
                                        }
                                    }
                                }
                                else if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
                                {
                                    if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                    {
                                        if (task.TargetStation > taskSecond.TargetStation)
                                        {
                                            LogAndWarn("执行调度任务控制", $"【{commonRGV.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVSecond.DeviceCode}】任务【{JsonConvert.SerializeObject(taskSecond)}】{commonRGVSecond.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                            return task;
                                        }
                                    }
                                }
                                return null;
                            }
                            else
                            {
                                if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000)
                                {
                                    RGVTaskCommand command = new RGVTaskCommand()
                                    {
                                        PickupLocation = (byte)Convert.ToSByte(15),
                                        TaskNum = Convert.ToInt16(1000),
                                        TaskType = (byte)Convert.ToSByte(1)
                                    };
                                    SendCommand(commonRGVSecond, command);
                                }
                                LogAndWarn("执行调度任务控制", $"【{commonRGV.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVSecond.DeviceCode}】任务【{JsonConvert.SerializeObject(taskSecond)}】{commonRGVSecond.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                return task;
                            }
                        }
                    }
                    return task;
                }
                else
                {
                    CommonRGV_FirstFloor? commonRGVFirst = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV01") as CommonRGV_FirstFloor;
                    if (commonRGVFirst != null)
                    {
                        if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock))
                        {
                            if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000)
                            {
                                RGVTaskCommand command = new RGVTaskCommand()
                                {
                                    PickupLocation = (byte)Convert.ToSByte(26),
                                    TaskNum = Convert.ToInt16(1000),
                                    TaskType = (byte)Convert.ToSByte(1)
                                };
                                SendCommand(commonRGVFirst, command);
                            }
                            LogAndWarn("执行调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(task)}】】");
                            return task;
                        }
                        else if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault))
                        {
                            var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
                            if (taskSecond != null)
                            {
                                if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                {
                                    if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                    {
                                        if (task.TargetStation < taskSecond.SourceStation && task.TargetStation < taskSecond.TargetStation)
                                        {
                                            LogAndWarn("执行调度任务控制", $"【{commonRGV.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVFirst.DeviceCode}】任务【{JsonConvert.SerializeObject(taskSecond)}】{commonRGVFirst.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                            return task;
                                        }
                                    }
                                }
                                else if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
                                {
                                    if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                    {
                                        if (task.TargetStation < taskSecond.TargetStation)
                                        {
                                            LogAndWarn("执行调度任务控制", $"【{commonRGV.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVFirst.DeviceCode}】任务【{JsonConvert.SerializeObject(taskSecond)}】{commonRGVFirst.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                            return task;
                                        }
                                    }
                                }
                                return null;
                            }
                            else
                            {
                                if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000)
                                {
                                    RGVTaskCommand command = new RGVTaskCommand()
                                    {
                                        PickupLocation = (byte)Convert.ToSByte(26),
                                        TaskNum = Convert.ToInt16(1000),
                                        TaskType = (byte)Convert.ToSByte(1)
                                    };
                                    SendCommand(commonRGVFirst, command);
                                }
                                LogAndWarn("执行调度任务控制", $"【{commonRGV.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVFirst.DeviceCode}】任务【{JsonConvert.SerializeObject(taskSecond)}】{commonRGVFirst.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                return task;
                            }
                        }
                    }
                    return task;
                }
            }
            catch (Exception ex)
            {
                WriteInfo("调度任务异常日志", ex.Message + Environment.NewLine + ex.StackTrace);
                return null;
            }
        }
        public Dt_Task DispatchTask(CommonRGV_FirstFloor commonRGV)
        {
            try
            {
                var tasks = _taskService.QueryRGVTask();
                Dt_Task task;
                if (tasks == null && tasks.Count() == 0)
                {
                    return null;
                }
                if (commonRGV.DeviceCode == "RGV01")
                {
                    CommonRGV_FirstFloor? commonRGVSecond = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV02") as CommonRGV_FirstFloor;
                    if (commonRGVSecond != null)
                    {
                        if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock))
                        {
                            if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000)
                            {
                                RGVTaskCommand command = new RGVTaskCommand()
                                {
                                    PickupLocation = (byte)Convert.ToSByte(15),
                                    TaskNum = Convert.ToInt16(1000),
                                    TaskType = (byte)Convert.ToSByte(1)
                                };
                                SendCommand(commonRGVSecond, command);
                            }
                            if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
                            {
                                LogAndWarn("调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01"))}】】");
                                return tasks.FirstOrDefault(x => x.RGVName == "RGV01");
                            }
                            else
                            {
                                LogAndWarn("调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02"))}】】");
                                return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
                            }
                        }
                        else if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault))
                        {
                            var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
                            if (taskSecond != null)
                            {
                                if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                {
                                    task = tasks.FirstOrDefault(x => x.SourceStation > taskSecond.TargetStation && x.TargetStation > taskSecond.SourceStation && x.SourceStation > taskSecond.SourceStation && x.TargetStation > taskSecond.TargetStation);
                                    LogAndWarn("执行调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVSecond.DeviceCode}】任务【{JsonConvert.SerializeObject(taskSecond)}】{commonRGVSecond.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                    return task;
                                }
                                else if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
                                {
                                    task = tasks.FirstOrDefault(x => x.SourceStation > taskSecond.TargetStation && x.TargetStation > taskSecond.TargetStation);
                                    LogAndWarn("执行调度任务控制", $"【{commonRGV.DeviceCode}工作模式:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVSecond.DeviceCode}】任务【{JsonConvert.SerializeObject(taskSecond)}】{commonRGVSecond.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                    return task;
                                }
                                return null;
                            }
                            else
                            {
                                if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000)
                                {
                                    RGVTaskCommand command = new RGVTaskCommand()
                                    {
                                        PickupLocation = (byte)Convert.ToSByte(15),
                                        TaskNum = Convert.ToInt16(1000),
                                        TaskType = (byte)Convert.ToSByte(1)
                                    };
                                    SendCommand(commonRGVSecond, command);
                                }
                                if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
                                {
                                    LogAndWarn("调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01"))}】】");
                                    return tasks.FirstOrDefault(x => x.RGVName == "RGV01");
                                }
                                else
                                {
                                    LogAndWarn("调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02"))}】】");
                                    return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
                                }
                            }
                        }
                        else
                        {
                            if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
                            {
                                LogAndWarn("调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01"))}】】");
                                return tasks.FirstOrDefault(x => x.RGVName == "RGV01");
                            }
                            else
                            {
                                LogAndWarn("调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02"))}】】");
                                return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
                            }
                        }
                    }
                    else
                    {
                        if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
                        {
                            LogAndWarn("调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01"))}】】");
                            return tasks.FirstOrDefault(x => x.RGVName == "RGV01");
                        }
                        else
                        {
                            LogAndWarn("调度任务控制", $"【{commonRGVSecond.DeviceCode}工作模式:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02"))}】】");
                            return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
                        }
                    }
                }
                else
                {
                    CommonRGV_FirstFloor? commonRGVFirst = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV01") as CommonRGV_FirstFloor;
                    if (commonRGVFirst != null)
                    {
                        if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock))
                        {
                            if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000)
                            {
                                RGVTaskCommand command = new RGVTaskCommand()
                                {
                                    PickupLocation = (byte)Convert.ToSByte(26),
                                    TaskNum = Convert.ToInt16(1000),
                                    TaskType = (byte)Convert.ToSByte(1)
                                };
                                SendCommand(commonRGVFirst, command);
                            }
                            if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
                            {
                                LogAndWarn("调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02"))}】】");
                                return tasks.FirstOrDefault(x => x.RGVName == "RGV02");
                            }
                            else
                            {
                                LogAndWarn("调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01"))}】】");
                                return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
                            }
                        }
                        else if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault))
                        {
                            var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
                            if (taskFirst != null)
                            {
                                if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                {
                                    task = tasks.FirstOrDefault(x => x.SourceStation < taskFirst.TargetStation && x.TargetStation < taskFirst.SourceStation && x.SourceStation < taskFirst.SourceStation && x.TargetStation < taskFirst.TargetStation);
                                    LogAndWarn("执行调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVFirst.DeviceCode}】任务【{JsonConvert.SerializeObject(taskFirst)}】{commonRGVFirst.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                    return task;
                                }
                                else if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
                                {
                                    task = tasks.FirstOrDefault(x => x.SourceStation < taskFirst.TargetStation && x.TargetStation < taskFirst.TargetStation);
                                    LogAndWarn("执行调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】【{commonRGVFirst.DeviceCode}】任务【{JsonConvert.SerializeObject(taskFirst)}】{commonRGVFirst.DeviceCode}返回任务:【{JsonConvert.SerializeObject(task)}】】");
                                    return task;
                                }
                                return null;
                            }
                            else
                            {
                                if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000)
                                {
                                    RGVTaskCommand command = new RGVTaskCommand()
                                    {
                                        PickupLocation = (byte)Convert.ToSByte(15),
                                        TaskNum = Convert.ToInt16(1000),
                                        TaskType = (byte)Convert.ToSByte(1)
                                    };
                                    SendCommand(commonRGVFirst, command);
                                }
                                if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
                                {
                                    LogAndWarn("调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02"))}】】");
                                    return tasks.FirstOrDefault(x => x.RGVName == "RGV02");
                                }
                                else
                                {
                                    LogAndWarn("调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01"))}】】");
                                    return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
                                }
                            }
                        }
                        else
                        {
                            if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
                            {
                                LogAndWarn("调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02"))}】】");
                                return tasks.FirstOrDefault(x => x.RGVName == "RGV02");
                            }
                            else
                            {
                                LogAndWarn("调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01"))}】】");
                                return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
                            }
                        }
                    }
                    else
                    {
                        if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
                        {
                            LogAndWarn("调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02"))}】】");
                            return tasks.FirstOrDefault(x => x.RGVName == "RGV02");
                        }
                        else
                        {
                            LogAndWarn("调度任务控制", $"【{commonRGVFirst.DeviceCode}工作模式:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}】作业状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}】设备状态:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}】是否有货:【{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}】返回任务:【{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01"))}】】");
                            return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                WriteInfo("调度任务异常日志", ex.Message+Environment.NewLine+ex.StackTrace);
                return null;
            }
        }
        /// <summary>
        /// RGV任务完成
        /// </summary>
        /// <param name="commonRGV"></param>
        /// <param name="TaskNum"></param>
        public void RGVTaskFinish(CommonRGV_FirstFloor commonRGV, int TaskNum)
        {
            if (commonRGV != null)
            {
                var task = _taskRepository.QueryFirst(x => x.TaskNum == TaskNum);
                if (task != null)
                {
                    if (task.TaskState == (int)TaskInStatusEnum.InRetuen)
                    {
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress);
                        if (stationManager != null)
                        {
                            IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManager.stationPLC);
                            if (device != null)
                            {
                                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                                commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(4));
                                var content = _taskService.RGVTaskCompleted(TaskNum);
                            }
                        }
                    }
                    if (task.TaskState == (int)TaskInStatusEnum.RGV_Indispatch)
                    {
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress);
                        if (stationManager != null)
                        {
                            IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManager.stationPLC);
                            if (device != null)
                            {
                                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                                Thread.Sleep(100);
                                DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceChildCode == stationManager.stationChildCode && x.DeviceProParamName == "ConveyorLineBarcode").FirstOrDefault();
                                var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 5);
                                string Barcode = Encoding.UTF8.GetString(x);
                                if (Barcode == null || Barcode == "")
                                {
                                    conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode);
                                    commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, Convert.ToSByte(stationManager.stationRemark));
                                    commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(task.TaskNum));
                                    task.TaskState = (int)TaskInStatusEnum.InRetuen;
                                    _taskRepository.UpdateData(task);
                                    return;
                                }
                                var content = _taskService.RGVTaskCompleted(TaskNum, Barcode);
                            }
                        }
                    }
                    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);
                    }
                }
            }
        }
        /// <summary>
        /// èŽ·å–ä»»åŠ¡
        /// </summary>
        /// <param name="commonRGV">堆垛机对象</param>
        /// <returns></returns>
        private Dt_Task? GetTask(CommonRGV_FirstFloor commonRGV, bool InStock)
        {
            if (InStock)
            {
                return _taskService.QueryRGVExecutingTask(commonRGV.DeviceCode, commonRGV.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum));
            }
            return null;
            #region
            //if (commonRGV.LastTaskType == null)
            //{
            //    task = _taskService.QueryRGVTask(commonRGV.DeviceCode);
            //}
            //else
            //{
            //    if (commonRGV.LastTaskType.GetValueOrDefault().GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
            //    {
            //        task = _taskService.QueryRGVInTask(commonRGV.DeviceCode);
            //        if (task == null)
            //        {
            //            task = _taskService.QueryRGVOutTask(commonRGV.DeviceCode);
            //        }
            //    }
            //    else
            //    {
            //        task = _taskService.QueryRGVOutTask(commonRGV.DeviceCode);
            //    }
            //}
            //if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
            //{
            //    if (task == null)
            //    {
            //        task = _taskService.QueryRGVInTask(commonRGV.DeviceCode);
            //    }
            //    else
            //    {
            //        return task;
            //    }
            //}
            //else if (task == null)
            //{
            //    task = _taskService.QueryRGVInTask(commonRGV.DeviceCode);
            //}
            #endregion
        }
        /// <summary>
        /// ä»»åŠ¡å®žä½“è½¬æ¢æˆå‘½ä»¤Model
        /// </summary>
        /// <param name="task">任务实体</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public RGVTaskCommand? ConvertToRGVTaskCommand([NotNull] Dt_Task task)
        {
            RGVTaskCommand rgvTaskCommand = new RGVTaskCommand();
            rgvTaskCommand.TaskNum = Convert.ToInt16(task.TaskNum);
            if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//判断是否是入库任务
            {
                //rgvTaskCommand.TaskType = (byte)Convert.ToSByte(16);
                //rgvTaskCommand.TaskType = (byte)Convert.ToSByte(64);   é€€å›ž
                if (task.TaskState == (int)TaskInStatusEnum.InNew)
                {
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress);
                    rgvTaskCommand.TaskType = (byte)Convert.ToSByte(3);
                    rgvTaskCommand.PickupLocation = (byte)Convert.ToSByte(stationManager.stationRemark);
                }
                else if (task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                {
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress);
                    rgvTaskCommand.TaskType = (byte)Convert.ToSByte(4);
                    rgvTaskCommand.PutcargoLocation = (byte)Convert.ToSByte(stationManager.stationRemark);
                }
                else
                {
                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"未找到站台【{task.NextAddress}】信息,无法获取对应的堆垛机取货站台信息");
                    return null;
                }
            }
            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
            {
                if (task.TaskState == (int)TaskOutStatusEnum.Line_OutFinish)
                {
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.CurrentAddress);
                    rgvTaskCommand.TaskType = (byte)Convert.ToSByte(3);
                    rgvTaskCommand.PickupLocation = (byte)Convert.ToSByte(stationManager.stationRemark);
                }
                else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish)
                {
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress);
                    rgvTaskCommand.TaskType = (byte)Convert.ToSByte(4);
                    rgvTaskCommand.PutcargoLocation = (byte)Convert.ToSByte(stationManager.stationRemark);
                }
                else
                {
                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"未找到站台【{task.NextAddress}】信息,无法获取对应的堆垛机取货站台信息");
                    return null;
                }
            }
            return rgvTaskCommand;
        }
        public bool SendCommand(CommonRGV_FirstFloor commonRGV, RGVTaskCommand? rgvTaskCommand)
        {
            commonRGV.SetValue(StackerCraneDBName.TaskNum, rgvTaskCommand.TaskNum);
            Thread.Sleep(100);
            commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, rgvTaskCommand.PutcargoLocation);
            Thread.Sleep(100);
            commonRGV.SetValue(StackerCraneDBName.PickupLocation, rgvTaskCommand.PickupLocation);
            Thread.Sleep(100);
            commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(rgvTaskCommand.TaskType));
            for (int i = 0; i < 6; i++)
            {
                if (commonRGV.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TaskNum) == rgvTaskCommand.TaskNum && commonRGV.GetValue<StackerCraneDBName, byte>(StackerCraneDBName.TaskType) == rgvTaskCommand.TaskType && commonRGV.GetValue<StackerCraneDBName, byte>(StackerCraneDBName.PutcargoLocation) == rgvTaskCommand.PutcargoLocation && commonRGV.GetValue<StackerCraneDBName, byte>(StackerCraneDBName.PickupLocation) == rgvTaskCommand.PickupLocation)
                {
                    WriteInfo(commonRGV.DeviceName, $"写入任务成功写入次数{i}写入任务【{JsonConvert.SerializeObject(rgvTaskCommand)}】");
                    return true;
                }
                if (commonRGV.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TaskNum) == rgvTaskCommand.TaskNum)
                {
                    commonRGV.SetValue(StackerCraneDBName.TaskNum, rgvTaskCommand.TaskNum);
                    Thread.Sleep(100);
                }
                if (commonRGV.GetValue<StackerCraneDBName, short>(StackerCraneDBName.PutcargoLocation) == rgvTaskCommand.PutcargoLocation)
                {
                    commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, rgvTaskCommand.PutcargoLocation);
                }
                if (commonRGV.GetValue<StackerCraneDBName, short>(StackerCraneDBName.PickupLocation) == rgvTaskCommand.PickupLocation)
                {
                    commonRGV.SetValue(StackerCraneDBName.PickupLocation, rgvTaskCommand.PickupLocation);
                }
                if (commonRGV.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TaskType) == rgvTaskCommand.TaskType)
                {
                    commonRGV.SetValue(StackerCraneDBName.TaskType, rgvTaskCommand.TaskType);
                }
            }
            WriteInfo(commonRGV.DeviceName, $"RGV任务写入失败【{JsonConvert.SerializeObject(rgvTaskCommand)}】");
            return false;
        }
        public void LogAndWarn(string deviceName, string log, string color = "red")
        {
            ConsoleHelper.WriteWarningLine(log);
            _noticeService.Logs(userTokenIds, new { deviceName, log = log, time = DateTime.Now.ToString("G"), color = color });
            WriteInfo(deviceName, log);
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -60,13 +60,6 @@
                CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                if (commonStackerCrane != null)
                {
                    //if (!commonStackerCrane.IsEventSubscribed)
                    //{
                    //    commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订阅任务完成事件
                    //}
                    //commonStackerCrane.CheckStackerCraneTaskCompleted();//防止任务完成事件监测超时,再手动触发一次
                    if (commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.TaskCompleted))
                    {
                        var x = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.CurrentTaskNum);
@@ -353,7 +346,7 @@
        {
            StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand();
            stackerCraneTaskCommand.TaskNum = (byte)Convert.ToSByte(task.TaskNum);
            stackerCraneTaskCommand.TaskNum = (short)Convert.ToInt16(task.TaskNum);
            if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//判断是否是入库任务
            {
ÏîÄ¿×ÊÁÏ/½Ó¿ÚЭÒé/~$ÖÇÄÜÁ¢¿âϵͳÓëWCS½Ó¿Ú(°Â̹˹) -¿íº£(1).docx
Binary files differ